アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (5件)

がると申します。


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

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

お礼日時:2006/04/05 09:46

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



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){
適切な処理
}

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

補足日時:2006/04/05 09:40
    • good
    • 0

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

    • good
    • 0

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



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';
}
    • good
    • 0

# あ、こういうことですか?


# まだ違ってたりして・・

use strict;

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

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

この回答への補足

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

補足日時:2006/04/12 08:41
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!