こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

日付の比較について

いつもお世話になります。
ファイルに記述された日付に7日を加算した値とlocationtimeで取得した値を比較したいのですが、記述方法が分かりません。
<ファイルは下記のようになっております。>
2006<>03<>28<>明細
これに7を加算した(7日後という意味です)locationtimeでreturn "$year/$mon/$day";の戻り値と比較した比較したいのですが、
どのようにしたらよいのでしょうか?
どなたかご教示お願いいたします。

投稿日時 - 2006-04-03 19:49:03

QNo.2069555

すぐに回答ほしいです

質問者が選んだベストアンサー

# あ、こういうことですか?
# まだ違ってたりして・・

use strict;

my $date1='20060328';
my $date2='2006/04/05';
$date2=~ s{\/}{}g;

if($date1 <= $date2){
print '$date1 <= $date2';
}else{
print 'else';
}

投稿日時 - 2006-04-08 12:37:14

補足

SE-1様ありがとうございます。ご面倒かけて申し訳ありません。参考になりました。

投稿日時 - 2006-04-12 08:41:17

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

# これでいいでしょうか・・

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';
}

投稿日時 - 2006-04-08 12:32:47

ANo.3

すいません、locationtime ってなんですか?

投稿日時 - 2006-04-03 22:19:47

ANo.2

# こんなんどうでしょう。

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<>明細

投稿日時 - 2006-04-03 22:09:51

補足

SE-1様回答が遅くなり大変申し訳ありません。ロジック参考にさせて頂きました。ちなみに単純に入力されたデータ(2006/03/28->20060328)と(2006/04/05->2006/04/05)を比較する事は可能でしょうか?
例$date1="20060328"
$date2="20060405"
if($date1 <= $date2){
適切な処理
}

ご面倒ですが、補足願えればと思います。

投稿日時 - 2006-04-05 09:40:16

ANo.1

がると申します。
日付のみで時間を気にせずにその大小をひかくしたいのであれば、「ユリウス暦」という便利なものがありますので、一度調べてみてください。
一度作って関数化しておくと便利ですよ。
http://homepage1.nifty.com/manome/astrology/julian.html

投稿日時 - 2006-04-03 21:03:45

お礼

galluda様回答が遅くなり大変申し訳ありません。
参考にさせて頂きました。他の方に補足質問させていただきましたが、単純に入力されたデータ(2006/03/28->20060328)と(2006/04/05->2006/04/05)を比較する事は可能でしょうか?
例$date1="20060328"
$date2="20060405"
if($date1 <= $date2){
適切な処理
}
また文字列を数値で比較する場合は""を外した状態で代入すればよいのでしょうか?(基本を忘れてます。申し訳ありません。)
ご面倒ですが、補足願えればと思います。

投稿日時 - 2006-04-05 09:46:42

あなたにオススメの質問