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

自分の誕生日から現在までの経過日数を算出するには、どういう関数を使ったらよいのでしょうか。
閏年の計算とかもあって、結構難しいプログラムですか?

A 回答 (3件)

それほど難しくありません。



こんな方法はどうでしょうか。

まず、cftime(),mktime() 等で誕生日の日付情報をtime_t型に変換します。
その後、time()で、time_t型の現在時刻を取得します。
time_t型は、日本時間で1970年1月1日午前9時から何秒経ったかを表すもので、実体は通常long型です。

取得したそれぞれの値に32400(9時間の秒数)を足してから86400(1日の秒数)で割れば、日本時間で1970年1月1日から何日経過したかという値になりますから、あとは引き算するだけです。
(日本以外の場合は32400のところを変えてくださいね)

上記の関数は、#include <time.h> してから使ってくださいね。
    • good
    • 0
この回答へのお礼

ありがとうございました。
よくわかりました。

お礼日時:2003/09/03 11:08

エクセルか何かの計算式の話でしょうか?

    • good
    • 2
この回答へのお礼

質問しているカテゴリーをご確認いただきたいのですが。。。

お礼日時:2003/09/03 11:09

こんばんは。



プラットフォーム等不明ですが、WIN上でVC系でMFCを使って良いなら
CTimeSpan というクラスで計算するのが簡単です。

一般的なCランタイムなら struct tm 構造体で日付を指定して mktime
関数で time_t 値(1970/1/1 00:00:00 からの経過秒)に変換します。
これを誕生日と現在日付で行って差を取れば誕生日からの経過秒に。
後は秒→分→時→日と変換計算していけば経過日になります。

どちらも閏年の計算は内部処理してくれていると思います。


#参考URLの欄には入りきらなかったので…
http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考になります。

お礼日時:2003/09/03 11:07

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

このQ&Aを見た人はこんなQ&Aも見ています