• ベストアンサー

総日数を求める

引数として与えた西暦・月日から現在の日付までの 総日数を調べる関数が紹介されているページがあれば 教えて下さい。 自分ならこう書く、なんていうのでも結構です。

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

  • ベストアンサー
  • shige_70
  • ベストアンサー率17% (168/946)
回答No.4

まず、cftime(),mktime() 等で指定日の日付情報をtime_t型にします。 その後、time()で、time_t型の現在時刻を取得します。 取得したそれぞれの値に32400を足してから86400(1日の秒数)で割れば(小数点以下きり捨て)、日本時間で1970年1月1日から何日経過したかという値になりますから、あとは引き算するだけです。

alx
質問者

お礼

ありがとうございました。 mktime() を利用することにしました。 アドバイスありがとうございます。

その他の回答 (3)

noname#5537
noname#5537
回答No.3

汎用的にやるなら, 各日付のユリウス日を求めて,引き算すれば OK です。 ごく最近の年だけでよければ mktime を使うのが簡単です。

参考URL:
http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/u/ut2jd.html, http://www.okweb.ne.jp/kotaeru.php3?q=644522
alx
質問者

お礼

URLを御紹介いただきありがとうございました。 よく拝見させていただきました。

  • isobeman
  • ベストアンサー率41% (17/41)
回答No.2

どのようなプラットフォームでしょうか? WindowsでMFCが可ならば、 COleDateTime dt1( yyyy, mm, dd ); COleDateTime dt2( yyyy, mm, dd ); COleDateTimeSpan span( dt1 - dt2 ); printf( "%d 日間です", span.GetTotalDays() ); なんてかけます。 汎用性は無いですが、、、

alx
質問者

お礼

ありがとうございました。 MFCではないんですが、MFCを使う時の参考にさせていただきます。

回答No.1

西暦l年における、1月1日から、n月m日までの日数を求める関数を作る(funcA) 西暦l年における、総日数を求める関数を作る(funcB)←つまり、閏年判定 funcB(入力年)-funcA(入力日)で、入力日からその年の末までの日数 funcA(今日)で、今年の今日までの日数 funcBを、入力年の翌年から今年の前年までを回して足す ※入力日や今日をカウントするかどうかで調整のこと

alx
質問者

お礼

ありがとうございました。参考にさせていただきます。

関連するQ&A