C言語でわからないところががあります。
入力された年月日で曜日を求める問題で
このサイトでも似たような質問がいくつかあり(他のサイトでも)
参考になりました、閏年とか日数とか特に助かりました。
(参考と言うよりパクった感じですが
#include<stdio.h>
int main() {
int ,months,day,year,sum,i; //「変数 月 日 年 sum iを宣言」
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//「その月の最後の日
char*cweek[7] = {"日","月","火","水","木","金","土"};//曜日(1週間)
sum =0;// 「sumを0で初期化」
printf ("input (e.g. ****/**/**)\n>>");//ここで入力
scanf ("%d/%d/%d",&year,&months,&day);//「年 月 日を10進数で出力」
for(i=1;i<year;i++){//「1からユーザーが入力した年までループ」
sum++;
if((i%4==0)&&((i%100!=0))||(i%400==0)){//「閏年かどうか判定し、閏年なら1(29日)を足す」
sum++;
}
}
for (i =0; i < months-1; i++) {
sum += m_array[i];
}
if((i%4==0)&&((i%100!=0))||(i%400==0))//「年が閏年で月が3月以降なら閏年分の1を足す」
if(months>=3){
sum++;
}
}
sum=sum+day-1;
printf("%s曜日",cweek[sum%7]);//曜日の計算と出力//
return 0;
}
このソースの意味で質問なんですけど
このソースでいう前年度の総日数は最初の方に出ているループでだされてますよね?あと最後に出ているfor分、これは前月?までの総日数を求めてる・・・と思います。あと最後のsum=sum+day-1;なんですがこれはdayがその月の日数って事なんですよね?sumは前月で。
ちょっとわかりにくり質問で申し訳ないです。
お礼
いけました!ありがとうございました!!ほかのページのはなぜかこうはいかなかったんです!!!助かりました!本当にありがとうございました!