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. The name of the output argument is valid.
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi
i am getting valid_date (2018,4,1) output=1
and valid_date (2018,4,31) output=0
but i am getting error in
Assessment result: incorrect The last day of every month. Variable valid has an incorrect value
valid_date(2017,9,31) failed.........
Kindly point out the errors I have made!
function valid = valid_date(year, month, date)
if(nargin ~= 3)
valid = false;
elseif ((~isscalar(year)||(mod(year,1)~=0) || year<0))
valid = false;
elseif ((~isscalar(month))||(mod(month,1)~=0) || (month<=0) || (month>12))
valid = false;
elseif ((~isscalar(date))||(mod(date,1)~=0) || (date<=0))
valid = false;
elseif(any(month==[1:2:7,8:2:12])&& date>31)
valid = false;
elseif (any(month==[4,6,9,11]) && date>30)
valid = false;
elseif month==2 && date>(28+(mod(year,400)==0 || (mod(year,100)~=0 && mod(year,4)==0)))
valid=false;
else
valid = true;
end
댓글 수: 4
Guillaume
2020년 2월 20일
This homework again!
You may want to check the previous questions on this exact same homework:
and many more...
Muzaffar Bashir Arain
2020년 4월 26일
this porgrame works fine i just made simple correction/ addition of end in the last that probabiliy missing... cheers
답변 (1개)
Jon
2020년 2월 20일
편집: Jon
2020년 2월 20일
I verified that your program correctly returns that valid_date(2017,9,31) is false.
It looks like you are using some kind of test script to see if your program is working properly. Maybe there is a problem with this test script, because your program seems to work OK.
참고 항목
카테고리
Help Center 및 File Exchange에서 Time Series Objects에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!