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

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

ユーザ用ツール


perl:calendar_tomorrow_yesterday

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

perl:calendar_tomorrow_yesterday [2017/12/14 20:18]
perl:calendar_tomorrow_yesterday [2020/06/23 14:10] (現在)
行 1: 行 1:
 +====== 明日や昨日の日付を計算する(time関数) - Perl ======
 +~~socialite~~
 +<note important>この記事は2006年10月11日に書かれたものです。</note>
 +
 +明日、また昨日の日付を計算したい。
 +timeの戻り値が分かっている場合は非常にシンプルに求めることが出来る。
 +
 +===== サンプル =====
 +<code perl>
 +;#
 +;#昨日と明日を求める
 +;#
 +
 +#-- 現在の時刻を取得 --#
 +$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)
 +  );
 +}
 +</code>
 +
 +===== 実行結果 =====
 +<code>
 +2006/10/12
 +2006/10/10
 +</code>
 +
 +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".
 +
 +===== 関連書籍 =====
 +{{amazon>jp:4797336803}}
 +<html><p style="clear:both"></p></html>
 +
 +{{amazon>jp:4798139815}}
 +<html><p style="clear:both"></p></html>
 +
 +{{amazon>jp:B00O8GIL62}}
 +<html><p style="clear:both"></p></html>
 +{{tag>CGI・Perl例文集 Perl カレンダー 日付 }}
 +~~socialite~~
  

関連ページ