- ベストアンサー
総日数を求める
引数として与えた西暦・月日から現在の日付までの 総日数を調べる関数が紹介されているページがあれば 教えて下さい。 自分ならこう書く、なんていうのでも結構です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、cftime(),mktime() 等で指定日の日付情報をtime_t型にします。 その後、time()で、time_t型の現在時刻を取得します。 取得したそれぞれの値に32400を足してから86400(1日の秒数)で割れば(小数点以下きり捨て)、日本時間で1970年1月1日から何日経過したかという値になりますから、あとは引き算するだけです。
その他の回答 (3)
汎用的にやるなら, 各日付のユリウス日を求めて,引き算すれば OK です。 ごく最近の年だけでよければ mktime を使うのが簡単です。
お礼
URLを御紹介いただきありがとうございました。 よく拝見させていただきました。
- isobeman
- ベストアンサー率41% (17/41)
どのようなプラットフォームでしょうか? WindowsでMFCが可ならば、 COleDateTime dt1( yyyy, mm, dd ); COleDateTime dt2( yyyy, mm, dd ); COleDateTimeSpan span( dt1 - dt2 ); printf( "%d 日間です", span.GetTotalDays() ); なんてかけます。 汎用性は無いですが、、、
お礼
ありがとうございました。 MFCではないんですが、MFCを使う時の参考にさせていただきます。
- はなおか じった(@Jitta)
- ベストアンサー率42% (69/161)
西暦l年における、1月1日から、n月m日までの日数を求める関数を作る(funcA) 西暦l年における、総日数を求める関数を作る(funcB)←つまり、閏年判定 funcB(入力年)-funcA(入力日)で、入力日からその年の末までの日数 funcA(今日)で、今年の今日までの日数 funcBを、入力年の翌年から今年の前年までを回して足す ※入力日や今日をカウントするかどうかで調整のこと
お礼
ありがとうございました。参考にさせていただきます。
お礼
ありがとうございました。 mktime() を利用することにしました。 アドバイスありがとうございます。