まず、ここであまり多くのことを想定していないことを願っていますが、MATLAB には日付と時刻の操作が組み込まれているので、まだ使用していない場合は使用を開始する必要があります。
日付を表す方法は 3 つあります (ドキュメントからそのまま)。
Date String: '24-Oct-2003 12:45:07'
Date Vector: [2003 10 24 12 45 07]
Serial Date Number: 7.3188e+005
という関数がありdatevec
、日付をこの Date Vector 形式に変換できる場合、2 つの日付間の月数を簡単に計算できます。
date1 = datevec('17-jun-04', 'dd-mmm-yy')
date2 = datevec('24-oct-03', 'dd-mmm-yy')
% This if/else checks which date is later than the other
if(datenum(date1) > datenum(date2))
% num months is the number of months left in date2's year (ex. 2 months)+
% the number of months in date1's year (ex. 6 months) +
% the number of months in the years between (ex. 0 months).
num_months = (12 - date2(2)) + date1(2) + 12*(date1(1)-date2(1)-1)
else
%just flipped date1 and date2 from the above.
num_months = (12 - date1(2)) + date2(2) + 12*(date2(1)-date1(2)-1)
end
上記のコードはdatenum
、date1 が date2 より大きい (またはその逆) かどうかを確認するために使用します。
また、月と年だけを表示したい場合は、日付文字列の表示方法を次のように指定できます。datestr
>> date1
date1 =
2004 6 17 0 0 0
>> datestr(date1,'mm/yyyy') %Displays just month and year
ans =
06/2004