• 締切済み

曜日を調べるプログラムが分かりません!!

学校の課題がでたのですが、全く分かりません↓↓ [課題] 1990年1月1日以降の年月日をキーボードから入力すると、 それが何曜日かを表示するプログラムを作りなさい。 ※1990年1月1日は月曜日である ※うるう年の条件  「4の倍数で、100の倍数ではない」あるいは  「400の倍数である」 ※switchを使用すること どなたか分かる方教えてください。 よろしくお願いします。

みんなの回答

  • yama5140
  • ベストアンサー率54% (136/250)
回答No.4

>学校の課題がでたのですが、全く分かりません↓↓  入力した「年、月、日」のチェックなどもあるし・・・。  例えば、2008 11 31 とか・・。  「全く」って、「キーボード入力」処理も・・?。 +++++++++++++++++++++++++++++++++++++++++++++++ (1週間経ったので、提出の期限が過ぎちゃったかな) >※switchを使用すること  だけについて、アドバイス。 これを使って、  ・該当年の前年までは、1990年~ 365(366)積算。    337+ GetNissu( xxxx, 2 ) の戻り値  ・該当年は、この戻り値を「前月」まで積算し、「該当月」は入力日付を積算。  ・あとは、No.2 さんのとおり。 int GetNissu( int iYear, int iMon ) {  int iNissu;  switch( iMon ){   case 4:   case 6:   case 9:   case 11:    iNissu = 30;    break;   case 2:    iNissu = 28;    if( 0 == ( iYear % 4 ) ) iNissu = 29;    if( 0 == ( iYear % 100 ) ) iNissu = 28;    if( 0 == ( iYear % 400 ) ) iNissu = 29;    break;   default:    iNissu = 31;    break;  }  return( iNissu ); } インデントに全角空白を使用しています。

すると、全ての回答が全文表示されます。
  • asuncion
  • ベストアンサー率33% (2127/6290)
回答No.3

>#2さん >すまん、1990年1月1日を基点にして お謝りにならなくてもよいと思います。 ツェラーの公式を使うということは、 「1990年1月1日が月曜日であること」を間接的に用いていると いえるはずですので。

すると、全ての回答が全文表示されます。
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

すまん、1990年1月1日を基点にして算出しないといけないのですね。 1990年1月1日からの経過日数を計算して7で割った余りを求めれば曜日が分かります。 余りが0なら月曜、1なら火曜・・・6なら日曜

すると、全ての回答が全文表示されます。
  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.1

( ´・ω・`)つ【ツェラーの公式】

すると、全ての回答が全文表示されます。

関連するQ&A