とあるエンジニアの闇歴史帳

コピペで使える便利Wiki ※現在構築中です。

ユーザ用ツール


サイドバー

言語

サーバ関連

ツール

API

読み物

その他

perl:calendar_tomorrow_yesterday

明日や昨日の日付を計算する(time関数) - Perl

この記事は2006年10月11日に書かれたものです。

明日、また昨日の日付を計算したい。 timeの戻り値が分かっている場合は非常にシンプルに求めることが出来る。

サンプル

;#
;#昨日と明日を求める
;#
 
#-- 現在の時刻を取得 --#
$time = time();
 
#-- 明日 --#
print nextDay($time), "\n";
 
#-- 昨日 --#
print prevDay($time), "\n";
 
#-------------------------------
#明日
#-------------------------------
sub nextDay{
  my $time = shift || time();
  my $nextDay = $time + (24 * 60 * 60);
  my ($yyyy, $mm, $dd) = (localtime($nextDay))[5,4,3];
 
  $yyyy += 1900;
  $mm += 1;
 
  return(
    sprintf('%4d/%02d/%02d', $yyyy, $mm, $dd)
  );
}
 
 
#-------------------------------
#昨日
#-------------------------------
sub prevDay{
  my $time = shift || time();
  my $prevDay = $time - (24 * 60 * 60);
  my ($yyyy, $mm, $dd) = (localtime($prevDay))[5,4,3];
 
  $yyyy += 1900;
  $mm += 1;
 
  return(
    sprintf('%4d/%02d/%02d', $yyyy, $mm, $dd)
  );
}

実行結果

2006/10/12
2006/10/10

timeの戻り値とは、決められたある日時からの経過秒数をカウントした物である。MacOS以外は1970年1月1日からカウントが開始されている。普段コードを書く際には特に意識する必要はないが、秒数で管理されているというポイントだけ押さえておくと、上記のような処理を書く際に役立つ。

Returns the number of non-leap seconds since whatever time the system considers to be the epoch (that's 00:00:00, January 1, 1904 for Mac OS, and 00:00:00 UTC, January 1, 1970 for most other systems). Suitable for feeding to “gmtime” and “localtime”.

関連書籍

failed to fetch data: unkown error

failed to fetch data: unkown error

failed to fetch data: unkown error

関連ページ

perl/calendar_tomorrow_yesterday.txt · 最終更新: 2020/06/23 14:10 (外部編集)