内容へ移動
とあるエンジニアの闇歴史帳
コピペで使える便利Wiki ※現在構築中です。
ユーザ用ツール
ログイン
トレース:
perl:calendar_datesimple
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 日付の四則演算を行う(Date::Simple) - Perl ====== ~~socialite~~ <note important>この記事は2006年10月11日に書かれたものです。</note> ある日から15日先(または前)の日付を計算するなどしたいが、どうすれば良いだろうか? time値が分かっていれば簡単に求めることが出来るが、それが全く分からない。 今回はDate::Simpleを使った解法を示すことにする。以下のプログラムの実行には、Date::Simpleモジュールのインストールが必要となっている。 ===== サンプル ===== <code perl> ;# ;#X日後(前)の日付を求める ;# use Date::Simple; #-- 計算元の日付 --# my ($yyyy, $mm, $dd) = (2006, 12, 31); #-- 加算(減算)する値 --# my $plus = 5; #-- 計算 --# $result = calDate($yyyy, $mm, $dd, 5); print $result; #----------------------------------# #日付の演算を行う #----------------------------------# sub calDate{ my $yyyy = shift; my $mm = shift; my $dd = shift; my $plus = shift; #演算 my $date = Date::Simple::ymd($yyyy, $mm, $dd); my $result = $date + $plus; #戻す return( wantarray? ($date->year, $date->month, $date->day):$result ); } </code> ===== 実行結果 ===== <code> 2007-01-05 </code> 上記のcalDate関数では、関数の呼び出し元がリスト(配列など)を求めている場合は、年・月・日をそれぞれ返し、スカラーの場合は実行結果のような文字列を返す。 ==== もっと簡単に演算 ==== 例えば次のようなコードを書くと、日付と日付の間に何日あるかを調べることができる。 <code perl> use Date::Simple; print date('2001-08-27') - date('1977-10-05'); </code> ※動作しない場合は「Date::Simple::date('2001-08-27')」などとパッケージ名も指定する。 ==== 初期化について ==== 例ではymdを使用しているが、次のような初期化(オブジェクトの生成、取得)を行うことも可能だ。 <code perl> use Date::Simple; my $date = Date::Simple->new('1972-01-17'); </code> ==== 曜日の取得 ==== 曜日の取得はday_of_weekメソッドを呼び出すことで可能。 <code perl> use Date::Simple; my $date = Date::Simple->new('1979-10-05'); my $youbi = $date->day_of_week; print (('日','月','火','水','木','金','土')[$youbi]); </code> その他詳しいことはドキュメントを参照されたい。 = DateSimple - 簡単な日付オブジェクト : http://perldoc.jp/docs/modules/Date-Simple-2.03/Simple.pod ===== 関連書籍 ===== {{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~~
関連ページ
perl/calendar_datesimple.txt
· 最終更新: 2020/06/23 14:10 (外部編集)
ページ用ツール
文書の表示
バックリンク
文書の先頭へ