プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (4件)

西暦l年における、1月1日から、n月m日までの日数を求める関数を作る(funcA)


西暦l年における、総日数を求める関数を作る(funcB)←つまり、閏年判定
funcB(入力年)-funcA(入力日)で、入力日からその年の末までの日数
funcA(今日)で、今年の今日までの日数
funcBを、入力年の翌年から今年の前年までを回して足す

※入力日や今日をカウントするかどうかで調整のこと
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/09 22:47

どのようなプラットフォームでしょうか?


WindowsでMFCが可ならば、

COleDateTime dt1( yyyy, mm, dd );
COleDateTime dt2( yyyy, mm, dd );
COleDateTimeSpan span( dt1 - dt2 );
printf( "%d 日間です", span.GetTotalDays() );

なんてかけます。
汎用性は無いですが、、、
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/09 22:49

汎用的にやるなら,


各日付のユリウス日を求めて,引き算すれば OK です。

ごく最近の年だけでよければ mktime を使うのが簡単です。

参考URL:http://alfin.mine.utsunomiya-u.ac.jp/~niy/algo/u … http://www.okweb.ne.jp/kotaeru.php3?q=644522
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/09 22:50

まず、cftime(),mktime() 等で指定日の日付情報をtime_t型にします。


その後、time()で、time_t型の現在時刻を取得します。

取得したそれぞれの値に32400を足してから86400(1日の秒数)で割れば(小数点以下きり捨て)、日本時間で1970年1月1日から何日経過したかという値になりますから、あとは引き算するだけです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/09/09 22:52

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