• 输入年月日,推断是该年的第几天,还能够进一步推断从1年開始的第几天


    //输入年月日,推断是该年的第几天,还能够进一步推断从1年開始的第几天
    #include<iostream>
    using namespace std;
    int main()
    {
    int Day(int x,int y,int r);
    int Calculate_1(int x,int y,int r);
    int Calculate_2(int n);
    int n,y,r;/*****************************************************年,月,日,非常明显**/
    int x;/*********************************************************推断闰年的标志,x=1是闰年,x=0不是闰年**/
    char a;/********************************************************用户输入,是否进一步推断**/
    cout<<"请输入"<<endl<<"年,月,日:";
    cin>>n>>y>>r;
    while(n<=0||n>=10000)/******************************************推断年份是否正确**/
    {
    cout<<"超出我的计算范围,请输入1~9999之间的年份"<<'01'
    <<"请再次输入年份:";
    cin>>n;
    }
    if((n%4==0&&n%100!=0)||n%400==0)/*******************************推断是否是闰年**/
    x=1;
    else x=0;
    while(y>12||y<1)/***********************************************推断月份是否正确**/
    {
    cout<<"你输入这种月份是在逗我吗???"<<endl
    <<"再给你一次输入月份的机会:";
    cin>>y;
    }
    while(Day(x,y,r)==0)
    {
    cout<<"输入的日子不太对吧?请又一次输入日:"<<endl;
    cin>>r;
    }
    cout<<"你输入的日期是:"<<n<<'.'<<y<<'.'<<r<<'.'<<endl;
    cout<<"你输入的日期是该年的第"<<Calculate_1(x,y,r)<<"天."<<endl;/************计算_1*/
    cout<<"是否为你计算出是从公元1年開始的第几天???"<<'('<<"Y/N"<<')';
    cin>>a;
    int b=1;
    while(a!='y'&&a!='Y'&&a!='n'&&a!='N')
    {
    cout<<"嘿!怎么输入的?再次输入:";
    cin>>a;
    ++b;
    if(b==5)
    {
    cout<<"我问的是:是否为你计算出是从公元1年開始的第几天???"<<'('<<"Y/N"<<')'<<'a'<<endl;
    b=0;
    }
    }
    if(a=='Y'||a=='y')
    cout<<Calculate_2(n)+Calculate_1(x,y,r)<<endl;/*****************************************************************计算_2*/
    else cout<<"那好吧"<<'02'<<endl;
    return 0;
    }
    int Day(int x,int y,int r)/***************************************************************推断日子对不正确**/
    {
    switch(y)
    {
    case 2:
    {
    if(x==1)
    {
    if(r>0&&r<=29)
    return 1;
    else return 0;
    }
    else
    {
    if(r>0&&r<29)
    return 1;
    else return 0;
    }
    }
    case 4:case 6:case 9:case 11:
    {
    if(r>0&&r<31)
    return 1;
    else return 0;
    }
    default:
    {
    if(r>0&&r<=31)
    return 1;
    else return 0;
    }
    }
    }
    int Calculate_1(int x,int y,int r)
    {
    int a,b;
    if(x==1)
    a=29;
    else a=28;
    switch(y)
    {
    case 1:{b=r;return b;}
    case 2:{b=31+r;return b;}
    case 3:{b=31+a+r;return b;}
    case 4:{b=31+a+31+r;return b;}
    case 5:{b=31+a+31+30+r;return b;}
    case 6:{b=31+a+31+30+31+r;return b;}
    case 7:{b=31+a+31+30+31+30+r;return b;}
    case 8:{b=31+a+31+30+31+30+31+r;return b;}
    case 9:{b=31+a+31+30+31+30+31+31+r;return b;}
    case 10:{b=31+a+31+30+31+30+31+31+30+r;return b;}
    case 11:{b=31+a+31+30+31+30+31+31+30+31+r;return b;}
    case 12:{b=31+a+31+30+31+30+31+31+30+31+30+r;return b;}
    }
    }
    int Calculate_2(int n)
    {
    int a=0;
    for(int i=1;i<=n;++i)
    {
    if((i%4==0&&i%100!=0)||i%400==0)
    ++a;
    }
    return (n-1)*365+a;


    }
  • 相关阅读:
    C语言基础10
    swift笔记06
    C语言基础09
    C语言基础08
    C语言基础07
    C语言基础06
    swift笔记05
    Swift笔记4
    C语言基础05
    [转]一个清华计算机博士生的退学申请
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3906739.html
Copyright © 2020-2023  润新知