| Programming and Data Types | ![]() |
日付書式
MATLABは、3つの異なる日付書式、すなわち、日付文字、ある基準から数えた連続日付番号、日付ベクトルを用意しています。
日付を扱うとき、一般には日付文字(16-Sep-1996)を使います。MATLABは内部では連続日付番号(729284)を使います。連続日付番号は、ある固定した日付より日を単位とした日数で表します。MATLABでは、連続日付番号の1は、西暦0年の1月1日を基準にしています。MATLABは、日を単位として分数で時刻を表します。例えば、午後6時は0.75です。そして、'16-Sep-1996, 6:00 pm' はMATLABでは729284.75です。
日付を必要とするすべての関数は、日付文字、または、連続日付番号のどちらでも使えます。MATLABコマンドラインレベルで日付を取り扱うとき、数が少なければ、日付文字の方が便利です。日付の大きな数字を取り扱い関数を使う場合や日付をより多くの計算に使おうとすると、日付番号を使ったほうが便利です。
日付ベクトルは、いくつかのMATLAB関数では内部書式になっており、計算の中では使うことができません。日付ベクトルは、[year month day hour minute second]の要素から構成されています。
MATLABは、日付文字を連続日付番号に変換し、また逆変換もできます。日付は日付ベクトルにも変換できます。
つぎに、MATLABで使われる3つの日付書式の例を示します。
| 日付文字 |
02-Oct-1996 |
| 連続番号 |
729300 |
| 日付ベクトル |
1996 10 2 0 0 0 |
日付書式間の変換
|
日付文字から連続日付番号に変換 |
|
連続日付番号を日付文字に変換 |
|
つぎに、ある日付書式を他の日付書式に変換する例を示しています。 |
つぎに、ある日付書式を他の日付書式に変換する例を示しています。
d1 = datenum('02-Oct-1996')
d1 =
729300
d2 = datestr(d1+10)
d2 =
12-Oct-1996
dv1 = datevec(d1)
dv1 =
199610 2 0 0 0
dv2 = datevec(d2)
dv2 =
199610 12 0 0 0
日付文字書式
関数datenumは、日付計算を行なうために重要なものです。datenum は、種々の書式で入力文字を使うことができ、'dd-mmm-yyyy', 'mm/dd/yyyy', 'dd-mmm-yyyy, hh:mm:ss.ss'を入力文字として受け入れます。他のキャラクタにより分離された文字や数字から6個のフィールドまでの型を作ることができます。
'AM'、または、'PM'に続く整数です。たとえば、現在の年が1996ならば、つぎのものはすべて等価です。
'17-May-1996' '17-May-96' '17-May' 'May 17, 1996' '5/17/96' '5/17'
'17-May-1996, 18:30' '5/17/96/6:30 pm'
数字のみの入力に対するデフォルトの書式は米国標準を使い、3/6 は、3月6日で、6月3日ではありません。
入力日付文字のベクトルを作成するならば、列ベクトルを使って、すべての文字は同じ長さであることをチェックしてください。長さがバラバラの場合、スペースかゼロを設定してください。
出力書式
関数datestr(D,dateform)は、連続日付Dを19種類の日付文字出力書式のいずれかを使って日、時を表します。デフォルトの出力は日-月-年文字:01-Mar-1996 です。オプション整数引数dateformを使って出力書式を選択してください。
つぎに1996 年4月1日を、関数datestrを使って、種々に変換する例を示します。
d = '01-Mar-1999'
d =
01-Mar-1999
datestr(d)
ans =
01-Mar-1999
datestr(d, 2)
ans =
03/01/99
datestr(d, 17)
ans =
Q1-99
| 時刻と日付 | 現在の日付と時刻 | ![]() |