とても悩んでいます、1990年6月6日~1992年4月3日までの日数などを求めるプログラムなのですが、任意の年月日で求めれるようにしたいのですが、一年間の各月は日にちがバラバラじゃないですか?30の時もあるし29の時もある、そこの対応方法が浮かんでこなくて
いい案のある方回答よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
ベストアンサー
こんにちは。
tm構造体に日付時刻を設定して、mktime()でtime_tへ変換後、difftime()で2つのtime_t間の秒数が求まりますから、後は(3,600*24)で割れば日数がでます。
投稿2018/08/07 11:05
総合スコア23272
0
投稿2018/08/07 16:35
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
もしかして単なる日数ではなく、「○年△ヶ月□日」のように出したい、のでしょうか?
その場合、Ya年Ma月Da日~Yb年Mb月Db日とすると、
- まず Db-Da を求める。ただしその結果が0以下だった場合は、Mbを一減らし、Yb年の(Mb-1)月の日数を結果に加算する。もし元のMbが1だった場合は、Ybから1減らしてMbに12を加算してから処理する。
- 次に Mb-Ma を求める(ただしMb の値は、1. の結果によって減算されていることに注意)。結果が0以下の場合も同様にYbから1減算してMbに12を加算して処理する。
- 最後にYb-Yaを計算する。
要するに桁上がり・桁下がりを年月日に合わせて考慮して処理する、のです。
投稿2018/08/07 15:00
総合スコア13703
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/07 11:36
2018/08/07 11:51
2018/08/07 12:31
退会済みユーザー
2018/08/07 13:19