Delphiの日付処理

Delphiでよく使う日付処理をまとめました。

現在の日付を求める

現在の日付を求めるには、System.DateUtils.TodaySystem.SysUtils.Dateを使用します。

時刻部分は午前0時です。

System.DateUtils.Todayの使用例

uses
  System.DateUtils;

var
  D: TDateTime;
begin
  D := System.DateUtils.Today;

System.SysUtils.Dateの使用例

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); //今月の日数

コメント

  1. すみません、ちょっと伺いたいですが、
    インターネット上の正しい時刻を取得する方法はご存知でしょうか?
    ご教授ください

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です