万年历!(日历)

此万年历有三点功能
1.显示某一年的日历

2.显示某年中某个月的日历
3.显示某年某月某天是星期几

下面贴上蒟蒻的代码
#include <iostream>
#include <iomanip>
using namespace std;
int key,year,month,day,xingqi,num[15]={0,31,28,31,30,31,30,31,31,30,31,30,31,31,28},temp=1,k1,k2;
int three()
{
    if(month==1)
    {
        k1=1;
        year--;
        month=13;
    }
    else if(month==2)
    {
        k2=1;
        year--;
        month=14;
    }
     int W=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400+1)%7;
     if(k1==1)
     {
         year++;
         month=1;
     }
     else if(k2==1)
     {
         year++;
         month=2;
     }
      if(W==0)   return 0;
      else if(W==1)  return 1;
      else if(W==2)  return 2;
      else if(W==3)  return 3;
      else if(W==4)  return 4;
      else if(W==5)  return 5;
      else if(W==6)  return 6;
}
int two()
{
    cout<<setw(6)<<"日"<<setw(6)<<"一"<<setw(6)<<"二"<<setw(6)<<"三"<<setw(6)<<"四"<<setw(6)<<"五"<<setw(6)<<"六"<<endl;
    if(temp)
    {
        cout<<setw(14)<<year<<"."<<1<<"."<<1;
    if(xingqi==0) cout<<"星期日"<<endl;
    else if(xingqi==1) cout<<"星期一"<<endl;
    else if(xingqi==2) cout<<"星期二"<<endl;
    else if(xingqi==3) cout<<"星期三"<<endl;
    else if(xingqi==4) cout<<"星期四"<<endl;
    else if(xingqi==5) cout<<"星期五"<<endl;
    else if(xingqi==6) cout<<"星期六"<<endl;
    cout<<"--------------------------------------------"<<endl;
    }
    if((year%4==0&&year%100==0)||(year%400==0))
        {
            num[2]=29;
            num[14]=29;
        }
        int t;
    if(three()==0)  t=0;
    else if(three()==1) t=1;
    else if(three()==2) t=2;
    else if(three()==3) t=3;
    else if(three()==4) t=4;
    else if(three()==5) t=5;
    else if(three()==6) t=6;
    int x=0;
        while(x<t)
        {
            cout<<setw(6)<<" ";;
            x++;
        }
    for(int i=1;i<=num[month];i++)
    {
        cout<<setw(6)<<i;
        t++;
        if(t==7)
        {
            cout<<endl;
            t=0;
        }
    }
    cout<<endl;
    if(temp)
    cout<<"--------------------------------------------"<<endl;
    return 0;
}
int main()
{
   ios::sync_with_stdio(false);
   cout<<"      ___________________________________"<<endl;
   cout<<"      *           制作人:Why            *"<<endl;
   cout<<"            欢迎进入万年历查询系统:      "<<endl;
   cout<<"      *                                 *"<<endl;
   cout<<"      ___________________________________"<<endl;
   cout<<endl;
   cout<<endl;
   cout<<"请选择您的查询内容:"<<endl;
   cout<<endl;
   cout<<"                    1.显示一年的日历:"<<endl;
   cout<<"                    2.显示一月的日历:"<<endl;
   cout<<"                    3.显示某一天是星期几:"<<endl;
   cout<<"                    0.退出:"<<endl;
   cout<<"请选择按键(0-3):"<<endl;
   cin>>key;
   if(key==0) return 0;
   else if(key==3)
   {
      cout<<"输入年份:";
      cin>>year;
      cout<<endl;
      cout<<"输入月份(1-12):";
      cin>>month;
      cout<<endl;
      cout<<"输入此年此月相应的日期(1-28:29:30:31):";
      cin>>day;
      cout<<endl;
      cout<<"该天是:";
      if(three()==0) cout<<"星期日"<<endl;
      else if(three()==1) cout<<"星期一"<<endl;
      else if(three()==2) cout<<"星期二"<<endl;
      else if(three()==3) cout<<"星期三"<<endl;
      else if(three()==4) cout<<"星期四"<<endl;
      else if(three()==5) cout<<"星期五"<<endl;
      else if(three()==6) cout<<"星期六"<<endl;
   }
   else if(key==2)
   {
      cout<<"输入年份以及此年的元旦是星期几用(0-6)表示:";
      cin>>year>>xingqi;
      cout<<endl;
      cout<<"输入此年月份(1-12):";
      cin>>month;
      day=1;
      two();
   }
   else if(key==1)
   {
       temp=0;
       cout<<"输入年份:";
       cin>>year;
       cout<<endl;
       for(int i=1;i<=12;i++)
       {
           k1=0;
           k2=0;
           cout<<i<<"月的年历如下:"<<endl;
           month=i;
           day=1;
           two();
       }
   }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/whyckck/article/details/80233831