fork download
  1. #include <stdio.h>//第0講演習 3-4
  2.  
  3. int is_uruu(int year){
  4. if(year%4==0){
  5. if(year%100==0){
  6. if(year%400==0) return 1;
  7. else return 0;
  8. }
  9. else return 1;
  10. }
  11. else return 0;
  12. }
  13. int maxday_of_month(int y, int m){
  14. if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12){
  15. return 31;
  16. }
  17. else if(m==4 || m==6 || m==9 || m==11){
  18. return 30;
  19. }
  20. else if(m==2){
  21. int a;
  22. a=is_uruu(y);
  23. if(a==1) return 29;
  24. else if (a==0) return 28;
  25. }
  26. }
  27. int days_from(int y, int m, int d){
  28. int i,s=0;
  29. for(i=1;i<m;i++){
  30. s=s+maxday_of_month(y,i);
  31. }
  32. return s+d;
  33. }
  34. int hi_year(int y){
  35. int i,j=0,a;
  36. for(i=1900;i<y;i++){
  37. a=is_uruu(i);
  38. if(a==1) j=j+366;
  39. else if(a==0) j=j+365;
  40. }
  41. return j;
  42. }
  43. int suu_yobi(int y, int m, int d){
  44. int a,b,c;
  45. a=hi_year(y);
  46. b=days_from(y,m,d);
  47. c=(a+b)%7;
  48. if(c==0) return 0;
  49. else if(c==1) return 1;
  50. else if(c==2) return 2;
  51. else if(c==3) return 3;
  52. else if(c==4) return 4;
  53. else if(c==5) return 5;
  54. else if(c==6) return 6;
  55. }
  56. int main() {
  57. int year,month,day,yobi;
  58. scanf("%d %d %d",&year,&month,&day);
  59. yobi=suu_yobi(year,month,day);
  60. printf("西暦%d年%d月%d日は、",year,month,day);
  61. if(yobi==0) printf("日曜日である");
  62. else if(yobi==1) printf("月曜日である");
  63. else if(yobi==2) printf("火曜日である");
  64. else if(yobi==3) printf("水曜日である");
  65. else if(yobi==4) printf("木曜日である");
  66. else if(yobi==5) printf("金曜日である");
  67. else if(yobi==6) printf("土曜日である");
  68. return 0;
  69. }
  70.  
Success #stdin #stdout 0.01s 5324KB
stdin
2026 6 16
stdout
西暦2026年6月16日は、火曜日である