- ベストアンサー
日付の比較について
いつもお世話になります。 ファイルに記述された日付に7日を加算した値とlocationtimeで取得した値を比較したいのですが、記述方法が分かりません。 <ファイルは下記のようになっております。> 2006<>03<>28<>明細 これに7を加算した(7日後という意味です)locationtimeでreturn "$year/$mon/$day";の戻り値と比較した比較したいのですが、 どのようにしたらよいのでしょうか? どなたかご教示お願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
# あ、こういうことですか? # まだ違ってたりして・・ use strict; my $date1='20060328'; my $date2='2006/04/05'; $date2=~ s{\/}{}g; if($date1 <= $date2){ print '$date1 <= $date2'; }else{ print 'else'; }
その他の回答 (4)
- SE-1
- ベストアンサー率57% (26/45)
# これでいいでしょうか・・ use strict; my $date1='2006/03/28'; $date1=~ s{\/}{}g; my $date2='2006/04/05'; $date2=~ s{\/}{}g; if($date1 <= $date2){ print '$date1 <= $date2'; }else{ print 'else'; }
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
すいません、locationtime ってなんですか?
- SE-1
- ベストアンサー率57% (26/45)
# こんなんどうでしょう。 use strict; use Time::Local; my $date_info = <DATA>; my @date_infos = split /<>/, $date_info; my ($year,$mon,$day) = ($date_infos[0]-1900,$date_infos[1]-1,$date_infos[2]); my ($sec,$min,$hour)= (localtime(time))[0..2]; my $time2 = timelocal ($sec,$min,$hour,$day,$mon,$year); $time2 = $time2 + 7*24*60*60; if (time<$time2){ print "New file.\n"; }else{ print "Old file.\n"; } __DATA__ 2006<>03<>28<>明細
補足
SE-1様回答が遅くなり大変申し訳ありません。ロジック参考にさせて頂きました。ちなみに単純に入力されたデータ(2006/03/28->20060328)と(2006/04/05->2006/04/05)を比較する事は可能でしょうか? 例$date1="20060328" $date2="20060405" if($date1 <= $date2){ 適切な処理 } ご面倒ですが、補足願えればと思います。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 日付のみで時間を気にせずにその大小をひかくしたいのであれば、「ユリウス暦」という便利なものがありますので、一度調べてみてください。 一度作って関数化しておくと便利ですよ。 http://homepage1.nifty.com/manome/astrology/julian.html
お礼
galluda様回答が遅くなり大変申し訳ありません。 参考にさせて頂きました。他の方に補足質問させていただきましたが、単純に入力されたデータ(2006/03/28->20060328)と(2006/04/05->2006/04/05)を比較する事は可能でしょうか? 例$date1="20060328" $date2="20060405" if($date1 <= $date2){ 適切な処理 } また文字列を数値で比較する場合は""を外した状態で代入すればよいのでしょうか?(基本を忘れてます。申し訳ありません。) ご面倒ですが、補足願えればと思います。
補足
SE-1様ありがとうございます。ご面倒かけて申し訳ありません。参考になりました。