お久しぶりの更新となりますね。
今回は、お誕生日からツェラーの公式の公式というものを使い曜日を求めたいと思います。
そのプログラムが下記に示すコードになります。
色々とプログラムをしていて楽しかったです。是非、皆さんも一度、チャレンジしてみてはいかがでしょう?
すべてのソースコードが見えないと思いますので
ソースコードの始まりから終わりまで
コピー&ペーストし、メモ帳なんかに張り付ければ全文見えます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /***************************************************************************** ツェラーの公式参考元サイト URL : http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1129133746 http://tsunashima-origami.hatenablog.com/entry/2014/07/23/225434 ******************************************************************************/ #include<iostream> #include<string> using namespace std;
void main( ) { int w, tmp, h, y, m, d; string str;
cout << " 誕生日から曜日を求めます。\n"; cout << " 西暦年( 整数 ) で入力してください。\n"; cout << " 生まれ年入力 ----> "; cin >> h; cout << " 生まれ月入力 ----> "; cin >> m; cout << " 生まれ日入力 ----> "; cin >> d;
tmp = h; h = h; // h 百年 y = tmp /* % 10 */; // y 年 m = m; // m 月 d = d; // d 日
// 誕生日の生まれ月が、 1 月または 2 月の時 昨年の 1 月, 2 月にする。 if( m == 1 ) { y--; h--; m = 13;
} else if( m == 2 ) { y--; h--; m = 14;
}
// ツェラーの公式より曜日を求める w = ( y + y / 4 - y / 100 + y / 400 + ( 13 * m + 8 ) / 5 + d );
// 条件分岐でツェラーの公式の戻り値と曜日を関連付ける switch( w % 7 ) { // 日曜日 case 0 : str = "日曜日"; break; // 月曜日 case 1 : str = "月曜日"; break; // 火曜日 case 2 : str = "火曜日"; break; // 水曜日 case 3 : str = "水曜日"; break; // 木曜日 case 4 : str = "木曜日"; break; // 金曜日 case 5 : str = "金曜日"; break; // 土曜日 case 6 : str = "土曜日"; break;
}
cout << "\ndebug\n" << h << ", " << y << ", " << m << ", " << d << ", " << w << "\ndebug\n"; cout << str << "\n" << "\n";
}
|
| syntax2html |