[Delphi]日付や時刻の分解と生成

 

※全てのDelphiで動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

サンプル ※説明に必要な部分しか記述していません。

下記を実行すると

procedure TForm1.Button1Click(Sender: TObject);
//フォームに TMemo を1個配置します

//日付を年・月・日、時刻を時・分・秒・ミリ秒に分解するサンプルです

//指定した数値から日付や時刻のTDateTime型を求めるサンプルです

var
w_yy, w_mm, w_dd: Word;
w_hh, w_min, w_ss, w_ms: Word;
w_date, w_time: TDateTime;

begin

Memo1.Clear;

DecodeDate(Now, w_yy, w_mm, w_dd);

Memo1.Lines.Add(IntToStr(w_yy));
Memo1.Lines.Add(IntToStr(w_mm));
Memo1.Lines.Add(IntToStr(w_dd));
Memo1.Lines.Add('');

DecodeTime(Now, w_hh, w_min, w_ss, w_ms);

Memo1.Lines.Add(IntToStr(w_hh));
Memo1.Lines.Add(IntToStr(w_min));
Memo1.Lines.Add(IntToStr(w_ss));
Memo1.Lines.Add(IntToStr(w_ms));
Memo1.Lines.Add('');

w_date := EncodeDate(2016, 4, 5);

DecodeDate(w_date, w_yy, w_mm, w_dd);
Memo1.Lines.Add(IntToStr(w_yy));
Memo1.Lines.Add('');

w_time := EncodeTime(12, 34, 56, 789);

DecodeTime(w_time, w_hh, w_min, w_ss, w_ms);
Memo1.Lines.Add(IntToStr(w_ms));

end;

このようになります。

delphi-decode-encode-datetime

//関連事項 TryEncodeDate
https://byte.sakura.ne.jp/code/delphi%E6%97%A5%E4%BB%98%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%80%80sysutils-tryencodedate/