how deal with date?

hi, i have data with date as: ex.2005-09-06 are there func. convert this date into another form.
my work require to compare dates to know which event happen before , then I can arranged chronologically .
if is not , can i compare this date 2005-09-06 with another date to know which date earlier. or may there func. can arranged these dates. thanks

3 Comments

huda nawaf
huda nawaf on 3 Nov 2011
why ?
datenum(2005-09-06)
ans =
1990
>> datenum(2005-09-07)
ans =
1989
why the second date became less than first
The input needs to be data vector or STRING!
It's so funny. 2005-09-06 is treated as subtraction thus the result is 1990. You could also do datenum(2005,9,6) where the input arguments are date vector. See datevec().

Sign in to comment.

Answers (3)

Daniel Baboiu
Daniel Baboiu on 3 Nov 2011

1 vote

See the documentation on date conversion functions below: http://www.mathworks.com/help/techdoc/matlab_prog/bspgcx2-1.html#bspgcx3-43
If you have the string in numeric format only (as in your example), in the order yyyy-mm-dd, then you can compare strings directly to get date order.
If you want to convert it to another format, then you must remember to specify the fields, if you use numeric-only notation (your example could be yyyy-mm-dd or yyyy-dd-mm)

1 Comment

Jan
Jan on 3 Nov 2011
You cannot compare two dates in the string format yyyy-mm-dd directly, but you can use SORT to sort them, because then the chronological order equals the alphabetical order.

Sign in to comment.

You can convert the date string to numeric and then compare.
a=datenum('2005-09-06');
b=datenum('2005-09-05');
a>b
Bjorn Gustavsson
Bjorn Gustavsson on 3 Nov 2011

0 votes

Yup, there is. First you have datestr, datevec and datenum. Those should handle most if not all of this task.
HTH,

Categories

Tags

Asked:

on 3 Nov 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!