# VALID_DATE FUNCTION PROBLEM : Write a function called valid_date that takes three positive integer scalar inputs year, month, day. If these three represent a valid date, return a logical true, otherwise false...

3 views (last 30 days)
Emirhan Bilgiç on 31 Oct 2020
Edited: Rik on 3 Nov 2020
function [valid] = valid_date(y,m,d)
if ~isscalar(y) || ~isscalar(m) || ~isscalar(d)
valid= false;
end
if m > 12
valid= false;
elseif d > 31
valid= false;
end
if mod(y,4)==0
valid= valid_date(y,2,29);
valid= true;
end
if mod(y,400)==0 && mod(y,100)==0
valid= valid_date(y,2,29);
valid=false;
end
if m== 1 || 3 || 5 || 7 || 8 || 10 || 12
if d== 31
valid= true;
end
elseif m== 4 || 6 || 9 || 11
if d== 31
valid= false;
end
elseif m== 2
if d>=30
valid= false;
end
end
Emirhan Bilgiç on 31 Oct 2020
I keep seeing the error of "Output argument 'valid' (and maybe others) not assigned during call to 'valid_date'." Didn't i assign? Where am i missing? Thanks in advance ♥

Anmol Dhiman on 3 Nov 2020
Edited: Anmol Dhiman on 3 Nov 2020
Hi Emirhan ,
You need to initialize valid in the function. Add the following statement after creating function
function [valid] = valid_date(y,m,d)
valid = true; % or valid = false;
Regards,
Anmol Dhiman
Emirhan Bilgiç on 3 Nov 2020
Thank you so much!