date question
1 回表示 (過去 30 日間)
古いコメントを表示
how do i go 6 months back?
so today is Feb 17, 2010 I use datevec to transform to Feb 1,2011, I can just do datenum-6*30 and transform that to Aug 1,2010 but is there a better way to do this? I want to make the intra month assumption above and get the first of the month 6 months back from the first of whatever month I am in.
d1=datevec(date())
d1(3)=1
d2=datenum(d1)-6*30
d2=datevec(d2)
d2(3)=1
datestr(d2)
thanks for you help
0 件のコメント
採用された回答
Walter Roberson
2011 年 2 月 17 日
d1 = datevec(date());
datestr([d1(1)-1 d1(2)+6 1 0 0 0])
This uses the trick that you cannot go negative on months, but you can go back a year and forward 6 months from there.
Do not use -6*30 as that does not take in to account the length of months and will not handle leap-years properly.
ps: today is Feb 17, 2011 not 2010 :)
0 件のコメント
その他の回答 (1 件)
Leah
2011 年 2 月 17 日
1 件のコメント
Walter Roberson
2011 年 2 月 17 日
I tested my code before posting; it works fine whether years are crossed or not.
参考
カテゴリ
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!