Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

explaining the output of datevec

Asked by antonet

antonet

on 26 May 2012
Accepted Answer by Oleg Komarov

Oleg Komarov

HI all,

I have the following code

   numdays = datenum({'02/11/08'},'dd/mm/yy') - datenum({'09/10/11'},'dd/mm/yy')   
   numweeks28 = numdays / (7*4)
   numweeks28vec = datevec(numweeks28)

that produces numdays =

       -1071

numweeks28 =

-38.2500

numweek28svec =

    -1    11    22    18     0     0

It is not clear to m e what -1 11 22 18 0 0 of numweek28svec means? For example, what is -1,11,...?

Thanks

0 Comments

antonet

antonet

Tags

Products

No products are associated with this question.

2 Answers

Answer by Oleg Komarov

Oleg Komarov

on 26 May 2012
Accepted answer

The 4th line of datevec() syntax is:

[Y, M, D, H, MN, S] = datevec(...)

Where it's self-explanatory that

-1    11    22    18     0     0
 Y     M     D     H    MN     S

Now, the fact that you're doing SomeDate - DateInFuture, determines the negative sign.

Thus,

datevec(-38.25) 

says which Year, Month, etc.. is that serial date.

For intuition, supose you are 3 days Before Christ. Datevec would say you're in the Year before BC (thus -1), in the 12th month, 22nd day etc... (assuming he was born the 25th Dec).

1 Comment

antonet

antonet

on 26 May 2012

thank you very much

Oleg Komarov

Oleg Komarov

Answer by per isakson

per isakson

on 26 May 2012

datevec interprets a double as a serial date number.

numdays = -1071 says that the first date is 1071 days before the latter.

numweek28svec = datevec( -38.2500 ) should return something 38.25 days before something

minus 1 year plus 11 month plus 22 days plus 18 hours will add up in something like -38.25 days

However, many Matlab releases before now datevec didn't handle this kind of calculation.

One year is that a year with a leap day or not. IMO one should NOT use datevec like this.

1 Comment

antonet

antonet

on 26 May 2012

thank you per isakson

per isakson

per isakson

Contact us