#include <stdio.h>
int main(void) {
int year,month,day;
// int day[13]={0,31,28,31,30,31,30,31,31};
// day={"sun,mon,tue,wed,thu,fri,sat\n"}
do{
printf("what year");
scanf("%d",&year);
}while(year < 1);
do{
printf("what month");
scanf("%d",&month);
}while(month < 1 || month > 12 );
do{
printf("what day");
scanf("%d",&day);
}while(day <1 || day > 31);
}
int zeller(int y,int m){
if(m==1){
m = 13;
}else if(m==2){
m = 14;
}
int X;
X=(y+(y/4)-(y/100)+(y/400)+((13*m+8)/5)+1)%7;
return X;
}
// int uruudosi(int year) {
// if(year % 400 == 0) return 1;
// else if(year % 100 == 0) return 0;
// }
//
コメントアウトしたやつもどうすれば良いか教えてください。
C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
Re: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
どんな出力がほしいんですか?
仮に、仮にですよ、年と月を入力してその月1ヶ月分のカレンダーが
ほしいのであればですよ、
何で1ヶ月の日数が8月で終わってるんですか?9月から12月はどこ行ったんですか?
曜日の文字列をわざわざカンマ区切りで持っているのはどうしてですか?
素直に とかする方が管理しやすくないですか?
書くことを許しているんですか?
その年が400で割りきれるか、または、
4で割り切れて、かつ、100では割り切れないとき、閏年
それ以外は平年、です。
仮に、仮にですよ、年と月を入力してその月1ヶ月分のカレンダーが
ほしいのであればですよ、
この入力、いらなくないですか?
何で同じ変数名を使い回そうとしてるんですか?そんなことできないでしょ?
何で1ヶ月の日数が8月で終わってるんですか?9月から12月はどこ行ったんですか?
曜日の文字列をわざわざカンマ区切りで持っているのはどうしてですか?
素直に とかする方が管理しやすくないですか?
お使いのコンパイラーは、関数の中に別の関数の実体を
書くことを許しているんですか?
西暦年が閏年かどうかを判定する方法は、
その年が400で割りきれるか、または、
4で割り切れて、かつ、100では割り切れないとき、閏年
それ以外は平年、です。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
あと、何でもかんでもmain()でやろうとしないこと。
main()は下請け関数を呼び出すことに専念して、
必要な処理はmain()から呼ばれた関数群で実施することがポイント。
main()は下請け関数を呼び出すことに専念して、
必要な処理はmain()から呼ばれた関数群で実施することがポイント。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: C言語でカレンダー作りたいです。アドバイスお願いしますm(_ _)m
ここなんですけどね、仮に、曜日の出力形式が
Su Mo Tu We Th Fr Sa
てな具合に1とおりしかないのであれば、わざわざ配列にせずとも でよいです。どういう風に出力したいかは質問者さん次第。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。