Delphiでよく使う日付処理をまとめました。
現在の日付を求める
現在の日付を求めるには、System.DateUtils.TodayやSystem.SysUtils.Dateを使用します。
時刻部分は午前0時です。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
var
D: TDateTime;
begin
D := System.SysUtils.Date;
現在の日時を取得する
現在の日時を取得するには、System.SysUtils.Nowを使用します。
var
D: TDateTime;
begin
D := System.SysUtils.Now;
現在の時刻を取得する
現在の時刻を取得するには、System.SysUtils.GetTimeを使用します。
日付部分は1899年12月30日です。
var
D: TDateTime;
begin
D := System.SysUtils.GetTime;
現在の日付を整数で取得する
日付から年を取得する場合は、System.DateUtils.YearOf
月を取得する場合は、System.DateUtils.MonthOf
日を取得する場合は、System.DateUtils.DayOf
を使用します。
uses
System.DateUtils;
var
D: TDateTime;
Year: Word;
Month: Word;
Day: Word;
begin
D := System.DateUtils.Today;
Year := System.DateUtils.YearOf(D);
Month := System.DateUtils.MonthOf(D);
Day := System.DateUtils.DayOf(D);
明日の日付を取得する
明日の日付を取得するには、System.DateUtils.Tomorrowを使用します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Tomorrow;
昨日の日付を取得する
昨日の日付を取得するには、System.DateUtils.Yesterdayを使用します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Yesterday;
指定の日付が存在するかどうか調べる
指定の日付が存在するかどうか調べるには、System.DateUtils.IsValidDateを使用します。
uses
System.DateUtils;
begin
if System.DateUtils.IsValidDate(2020, 2, 29) then
ShowMessage('有効な日付です。')
else
ShowMessage('有効な日付ではありません。');
うるう年かどうか判定する
うるう年かどうか判定するには、System.SysUtils.IsLeapYearを使用します。
if System.SysUtils.IsLeapYear(2020) then
ShowMessage('うるう年です。')
else
ShowMessage('うるう年ではありません。');
指定された日付がうるう年であるかどうかを判定するには、System.DateUtils.IsInLeapYearを使用します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
if System.DateUtils.IsInLeapYear(D) then
ShowMessage('うるう年です。')
else
ShowMessage('うるう年ではありません。');
何日後、何日前の日付を求める
System.DateUtils.IncDayを使用します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
D := System.DateUtils.IncDay(D, 10); // 10日後の日付
何日前の日付を求めるには、引数に負の値を指定します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
D := System.DateUtils.IncDay(D, -10); // 10日前の日付
何ヶ月後、何ヶ月前の日付を求める
何ヶ月後、何ヶ月前の日付を求めるには、System.SysUtils.IncMonthを使用します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
D := System.SysUtils.IncMonth(D, 6); // 6ヶ月後
何ヶ月前の日付を求めるには、引数に負の値を指定します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
D := System.SysUtils.IncMonth(D, -6); // 6ヶ月前
何年後、何年前の日付を求める
何年後、何年前の日付を求めるには、System.DateUtils.IncYearを使用します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
D := System.DateUtils.IncYear(D, 10); // 10年後
何年前の日付を求めるには、引数に負の値を指定します。
uses
System.DateUtils;
var
D: TDateTime;
begin
D := System.DateUtils.Today;
D := System.DateUtils.IncYear(D, -10); // 10年前
月末日を求める
System.DateUtils.DaysInAMonthを使用すると、月の日数を取得できます。
uses
System.DateUtils;
var
Days: Word;
begin
Days := System.DateUtils.DaysInAMonth(2020, 2); //2020年2月の日数
System.DateUtils.DaysInMonthを使用すると、DateTime値の月の日数を取得できます。
uses
System.DateUtils;
var
D: TDateTime;
Days: Word;
begin
D := System.DateUtils.Today;
Days := System.DateUtils.DaysInMonth(D); //今月の日数
すみません、ちょっと伺いたいですが、
インターネット上の正しい時刻を取得する方法はご存知でしょうか?
ご教授ください
「インターネット上の正しい時刻」が何かわかりませんが、例えば、日本標準時プロジェク(http://www.nict.go.jp/JST/http.html)から取得してはいかがでしょうか。