« YouTubeのURLが入力されたら再生画面を表示させたい | メイン | 日付の四則演算がしたい (Perl, Date::Simple) »

カテゴリー:カレンダー(日付) 

明日(昨日)の日付を計算したい (Perl, time)

明日、また昨日の日付を計算したい。
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".




■関連
明日(昨日)の日付を計算したい (Perl, Date::Simple)
http://katsubemakito.net/cgiperl/2006/10/_perl_datesimple_1.html

 ※上記と同じ内容の処理を数行で記述できます


トラックバック

このエントリーのトラックバックURL:
http://katsubemakito.net/mt/mt-tb.cgi/334

この一覧は、次のエントリーを参照しています: 明日(昨日)の日付を計算したい (Perl, time):

» 日付の四則演算がしたい (Perl, Date::Simple) from CGI(Perl)例文集
ある日から15日先(または前)の日付を計算するなどしたいが、どうすれば良いだろう... [詳しくはこちら]

» 明日(昨日)の日付を計算したい (Perl, Date::Simple) from CGI(Perl)例文集
明日、また昨日の日付を計算したい。 Date::Simpleモジュールを使用する... [詳しくはこちら]

コメントを投稿

クリエイティブ・コモンズ・ライセンス
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.