- 締切済み
c言語 日付の計算
現在の日付と未来の日付を入力すると、現在の日付から未来の日付まで何日あるか計算して表示するプログラムを作成せよ。 作成するプログラムの日付の表現は structure st_date { int year; Int month; Int day; }; また、mktime()などの標準ライブラリの時刻、日付関数を使用してはならない。 五時間くらい格闘してますが、私の頭では正直何が何だかわかりませんでした(ー ー;) これのプログラム、また、考え方を教えて頂きたいです(T ^ T)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- akayoroshi
- ベストアンサー率50% (46/91)
Fairfield(フェアフィールド)の公式を使うと、西暦1年1月1日)から特定の日までの通算日数が求められます。この公式を使って求めた日数の差が所望の日数です。 「フェアフィールドの公式」で検索して見つかる解法やプログラムを参考にすればよいでしょう。
- KEIS050162
- ベストアンサー率47% (890/1879)
おおまかな考え方だけです。(日数計算の細かいところはうまく調整して作ってみてください) まずは、1月~12月までのそれぞれに日数を定義したテーブルを作る。 現在と未来の日付の構造体を定義して、それぞれの入力処理をつくる。 (入力のエラーを考えると面倒くさいので、まずは、必ず未来の日が現在より後であるという前提で。) 現在からその年の年末までの日数を計算する。(現在の月から年末月までの日数を先に定義したテーブルの数値を加算していき、当月の分を引く) 同様に、未来の方は、元旦から入力した日までの日数を計算する。(1月から入力した月までを先に定義したテーブルの数値を加算していき、当月分の入力日から月末までの日数を引く) 現在の年末までの日数と未来の元旦からの日数を足し合わせて、更に未来の年-現在の年-1)×365を引く。 なるべく条件判定が少なく済む方法で考えてみました。 最後にうるう年調整をする。⇒これは自分で考えてみてください。