A problem in calculating diffrence between two dates
1 view (last 30 days)
Show older comments
function totalDays=dateDiff(date1,date2)
y1=date1(3);
y2=date2(3);
diff1 = dateDiffSameY(date1,[31 12 y1])+1;
diff2 = dateDiffSameY([1 1 y2],date2);
sum=0;
for i=(date1(3)+1):(date2(3)-1)
if checkLeapYear(i) == 0 % function to cheak if a year is leap
sum = sum + 364;
else
sum = sum + 365;
end
end
totalDays = diff1 + diff2 + sum;
end
Well, I don't see the problem. I know that there are some situations that I forgotten but for example if I enter dateDiff([22 2 1732],[14 12 1799]) my function return 24701 When using daysact I get 24767 .
Where is my mistake? Very new in matlab, hope for your help.
2 Comments
Jan
on 25 Mar 2013
Edited: Jan
on 25 Mar 2013
Please use meaningful tags. "matlab" and "matlab code" do not help in a Matlab forum.
I cannot guess, what "daysact", "dateDiffSameY" and "checkLeapYear" is.
Do not shadow the builtin function "sum" by a variable of the same name. This leads to unexpected problems frequently.
Accepted Answer
Jan
on 25 Mar 2013
The difference bertween dates can be calculated much easier:
function result = dateDiff(a, b)
result = datenum(a) - datenum(b);
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!