fork download
  1. #include <stdio.h>
  2.  
  3. int is_uruu(int year){
  4. if(year%400==0){
  5. return 29;
  6. }else if(year%100==0){
  7. }else if(year%4==0){
  8. return 29;
  9. }
  10. return 28;
  11. }
  12.  
  13. int maxday_of_month(int y,int m){
  14. if(m==2){
  15. return is_uruu(y);
  16. }else if(m==4||m==6||m==9||m==11){
  17. return 30;
  18. }else{
  19. return 31;
  20. }
  21. }
  22.  
  23. int days_from(int y,int m){
  24. int i,j,sum;
  25. for(j=1;j<y;j++){
  26. for(i=1;i<13;i++){
  27. sum=sum+maxday_of_month(j,i);
  28. }
  29. }
  30. for(i=1;i<m;i++){
  31. sum=sum+maxday_of_month(y,i);
  32. }
  33. return sum;
  34. }
  35.  
  36. int main(void) {
  37. int i,j,y,m,week,days=0,dayc;
  38. scanf("%d",&y);
  39. scanf("%d",&m);
  40. week=days_from(y,m)%7;
  41. dayc=maxday_of_month(y,m);
  42. printf("%d年 %d月\n",y,m);
  43. printf("Su Mo Tu We Th Fr Sa");
  44. while(days<dayc){
  45. printf("\n");
  46. for(i=0;i<7;i++){
  47. if(i<=week&&days==0){
  48. printf(" ");
  49. }else{
  50. if(days==dayc){
  51. break;
  52. }else{
  53. days=days+1;
  54. if(days<10){
  55. printf(" ");
  56. }
  57. printf("%d ",days);
  58. }
  59. }
  60. }
  61. }
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0s 5320KB
stdin
2026
6
stdout
2026年 6月
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6 
 7  8  9 10 11 12 13 
14 15 16 17 18 19 20 
21 22 23 24 25 26 27 
28 29 30