日付時刻型
(datetime)は1970年1月1日からの経過秒数を保存します。
datetimeは8バイトのメモリを使用します。
日付時刻定数は文字通りの文字列として使用する事が出来ます。
年、月、日(または日、月、年)、時間、分と秒の数値を示す6つのパーツで構成されます
日付時刻定数は、D文字から始まりシングルクォーテーションで日付時刻を囲みます。
日付時刻の範囲は1970年1月1日 ~ 3000年12月31日です。
日付(年月日)と時間(時分秒)は省略する事が出来ますが、
文字通りの日付仕様なので、年月日を設定する事が望ましいです。
年月日の設定が無い場合コンパイラが
警告を返します。
サンプルソース:
datetime temp_time;
temp_time = D'2015.01.01 00:00';
temp_time = D'1980.07.19 12:30:27';
temp_time = D'19.07.1980 12:30:27';
temp_time = D'19.07.1980 12';
temp_time = D'01.01.2004';
temp_time = __DATE__;
temp_time = __DATETIME__;
temp_time = D'';
実際に試してみると、日時と時間を省略すると警告が出ますが、時間のみの場合は警告は出ませんでした。
マニュアル上では警告が出ると記載されているので、マニュアルに従いましょう。
datetime型の表示方法はコンパイルモード(#property strict)に依存します。
サンプルソース:
#property strict
int OnInit(){
datetime temp_time;
temp_time = D'1970.01.01 00:01:02';
Print( (string)temp_time );
Print( TimeToStr(temp_time, TIME_DATE | TIME_SECONDS));
}
#property strict無しで、日付表現させたい場合はTimeToStrで文字列変換します。
サンプルソース:
int OnInit(){
datetime temp_time;
temp_time = D'1970.01.01 00:01:02';
Print( (string)temp_time );
Print( TimeToStr(temp_time, TIME_DATE | TIME_SECONDS));
Print( TimeToStr(temp_time, TIME_DATE));
Print( TimeToStr(temp_time, TIME_SECONDS));
}