###前提、実現したいこと
c言語を使ってカレンダーを作っています。
その過程で曜日を出したいと思っています。
具体的に説明すると、西暦と月を入力してその月の1日の曜日を出力します。
前提としてツェラーの公式を使います。
###コード
include<stdio.h> int main(void){ int year,n,month,day,u; printf("西暦を入力してください: "); scanf("%d",&year); printf("月を入力してください: "); scanf("%d",&month); if(year % 400 == 0){ printf("閏年です\n"); }else if (year % 4 ==0 && year % 100 != 0 ){ printf("閏年です\n"); }else{ printf("閏年ではありません\n"); } if(month<=2){ u=month+12; }else{ u=month; } day=1; n=(year+year/4-year/100+year/400+(13*u+8)/5+day)%7; printf("%d\n",n); }
*3月から12月までは式にそのまま入力しますが、1月は13月、2月は14月とします。(ツェラーの公式)
#問題
3月から12月までは正常に出力されます。(日曜日を0土曜日を6としています)
ただ1月から2月までが正常に出力されません。
例えば、西暦2000年2月を入力すると2が出力されるはずですが、4が出力されてしまいます。
他の年も試しましたが1、2月以外は正常に出力されました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/30 14:41