人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで、1970/1/1に満たないシリアル値から年月日を求める事は可能でしょうか?可能であればその方法を知りたいのですが。

●質問者: kuwa
●カテゴリ:コンピュータ
✍キーワード:Perl シリアル
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● watal
●40ポイント

http://cocohome.hp.infoseek.co.jp/cocohome/l_nisukeisan.html

ココとPerlで遊びませんか(経過日数の計算)

上のリンクはあまり参考になりません。

ちょっと書いてみました。もっとスマートな方法があると思いますが…。

1行目の$timeserialに負の数(つまり1970/1/1 0:00:00から引く秒数分のシリアル値)を入れると、経過日数とその日付が出力されます。

実行にはDate::Calcモジュールが必要です。

また、あくまでグレゴリオ暦での計算なのでご注意を。

------------------

$timeserial = -86400;

($sec, $min, $hour, $mday, $mon, $year) = gmtime(0);

$year += 1900;

$mon += 1;

$kdays = int($timeserial / 60 / 60 / 24);

print ”$kdays日が経過しています¥n”;

use Date::Calc qw(Add_Delta_Days);

($y,$m,$d) = Add_Delta_Days($year,$mon,$mday,$kdays);

print ”$y/$m/$d¥n”;

-------------------------

◎質問者からの返答

回答ありがとうございます。

ただ、Date::Calcは標準モジュールではないので、標準モジュールだけで同じことをしたいと思っています。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ