C++打印日历

  1 #include <iostream>
  2 #include<string>
  3 using namespace std;
  4 
  5 int Isleap(int y,int m,int d)//四年一润,百年不润,四百在润。
  6 {
  7     if(( y%4 == 0) && (y%100 != 0)||(y%400 == 0))
  8         return 1;
  9     else return 0;
 10 }
 11 
 12 int All_day(int m,int d)
 13 {
 14     int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//边定义边赋值。
 15     int sum = 0;
 16     sum = sum + d;
 17     if(Isleap)
 18         a[1]=29;
 19     while(m>1)
 20     {
 21         sum = sum + a[m-1]; 
 22         m -= 1;
 23     }
 24     return sum;
 25 }
 26 int count_data(int y,int m,int d)
 27 {
 28     int w;
 29     if(m == 1||m == 2)
 30     {
 31         y = y-1;
 32         m = m+12;
 33     }
 34     w = (d + 2*m + 3 *(m+1) / 5 + y + y/4 - y/100 + y/400 +1)%7;
 35     return w;
 36 }
 37 void Display_week(int w,int y,int m,int d)
 38 {
 39     string s;
 40     switch(w)
 41     {
 42     case 1: s = "";
 43         break;
 44     case 2: s = "";
 45         break;
 46     case 3: s = "";
 47         break;
 48     case 4: s = "";
 49         break;
 50     case 5: s = "";
 51         break;
 52     case 6: s = "";
 53         break;
 54     case 0: s = "";
 55         break;
 56 
 57     }
 58     cout<<"\t今天是:"<<y<<""<<m<<""<<d<<""<<"星期"<<s<<endl;
 59 }
 60 void Display_month(int y,int m)
 61 {
 62     int w,i;
 63     int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
 64     if(Isleap)
 65         a[1]=29;
 66     w = count_data(y,m,1);
 67     cout<<"Sum"<<"\tMon"<<"\tTue"<<"\tWed"<<"\tThu"<<"\tFri"<<"\tSat"<<endl;
 68     for(i=1;i<=w;i++)
 69     {
 70         cout<<"\t";
 71     }
 72     for(i=1;i<=a[m-1];i++)
 73     {
 74         cout<<i<<"\t";
 75         if((w+i)%7==0)
 76             cout<<"\n";
 77     }
 78     cout<<endl;
 79 }
 80 int main()
 81 {
 82     int y,m,d,w;
 83     cout<<"请输入年、月、日:"<<endl;
 84     while(1)
 85     {
 86         cin>>y>>m>>d;
 87         if(y<0||m<0||d<0||m>12||d>31)
 88         {
 89             cout<<"请重新输入:"<<endl;
 90             continue;
 91         }
 92         else
 93             break;
 94     }
 95     if (Isleap(y,m,d))
 96         cout<<"是闰年"<<endl;
 97     else
 98         cout<<"不是闰年"<<endl;
 99     All_day(m,d);
100     cout<<y<<"-"<<"1-1"<<""<<y<<'-'<<m<<"-"<<d<<"一共"<<All_day(m,d)<<""<<endl;
101     w = count_data(y,m,d);//算出星期几
102     Display_week(w,y,m,d);//打印年月日
103     Display_month(y,m);//打印日历
104     return 0;
105 }

 

posted @ 2020-12-07 22:59  buhuishuoyingyu  阅读(614)  评论(0)    收藏  举报