#include <stdio.h>
int Zeller(int year, int month, int day) {
// 1月, 2月は前年の13月, 14月とする
if (month == 1 || month == 2) {
month += 12;
year -= 1;
}
int Y = year % 100;
int C = year / 100;
int weekday = ((day + (26 * (month + 1) / 10) + Y + Y / 4 + 5 * C + C / 4) + 5) % 7;
return weekday;
}
int main() {
int year, month, day;
// 確認
year = 2020;
month = 6;
day = 27;
int weekday = Zeller(year, month, day);
printf("西暦%d年%d月%d日の曜日番号は: %d\n", year
, month
, day
, weekday
);
// 入力用
/*
printf("西暦年を入力してください: ");
scanf("%d", &year);
printf("月を入力してください: ");
scanf("%d", &month);
printf("日を入力してください: ");
scanf("%d", &day);
printf("曜日番号は: %d\n", Zeller(year, month, day));
*/
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKaW50IFplbGxlcihpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KSB7CiAgICAvLyAx5pyILCAy5pyI44Gv5YmN5bm044GuMTPmnIgsIDE05pyI44Go44GZ44KLCiAgICBpZiAobW9udGggPT0gMSB8fCBtb250aCA9PSAyKSB7CiAgICAgICAgbW9udGggKz0gMTI7CiAgICAgICAgeWVhciAtPSAxOwogICAgfQoKICAgIGludCBZID0geWVhciAlIDEwMDsgICAgIAogICAgaW50IEMgPSB5ZWFyIC8gMTAwOyAgICAgCgogICAgaW50IHdlZWtkYXkgPSAoKGRheSArICgyNiAqIChtb250aCArIDEpIC8gMTApICsgWSArIFkgLyA0ICsgNSAqIEMgKyBDIC8gNCkgKyA1KSAlIDc7CgogICAgcmV0dXJuIHdlZWtkYXk7IAp9CgppbnQgbWFpbigpIHsKICAgIGludCB5ZWFyLCBtb250aCwgZGF5OwoKICAgIC8vIOeiuuiqjQogICAgeWVhciA9IDIwMjA7CiAgICBtb250aCA9IDY7CiAgICBkYXkgPSAyNzsKCiAgICBpbnQgd2Vla2RheSA9IFplbGxlcih5ZWFyLCBtb250aCwgZGF5KTsKCiAgICBwcmludGYoIuilv+aapiVk5bm0JWTmnIglZOaXpeOBruabnOaXpeeVquWPt+OBrzogJWRcbiIsIHllYXIsIG1vbnRoLCBkYXksIHdlZWtkYXkpOwoKICAgIC8vIOWFpeWKm+eUqAogICAgLyoKICAgIHByaW50Zigi6KW/5pqm5bm044KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiKTsKICAgIHNjYW5mKCIlZCIsICZ5ZWFyKTsKICAgIHByaW50Zigi5pyI44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiKTsKICAgIHNjYW5mKCIlZCIsICZtb250aCk7CiAgICBwcmludGYoIuaXpeOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhDogIik7CiAgICBzY2FuZigiJWQiLCAmZGF5KTsKICAgIHByaW50Zigi5puc5pel55Wq5Y+344GvOiAlZFxuIiwgWmVsbGVyKHllYXIsIG1vbnRoLCBkYXkpKTsKICAgICovCgogICAgcmV0dXJuIDA7Cn0=