02周:项目四扩展:日期结构体

来源:互联网 发布:windows 10 乱码 编辑:程序博客网 时间:2024/04/29 04:08
/** Copyright (c) 2014, 烟台大学计算机学院* All rights reserved.* 作    者:王颖* 完成日期:2014 年 3 月 7 日* 版 本 号:v1.0* 输入描述: 无* 问题描述:玩日期/处理该日在本年中是第几天/处理是该天的第几秒* /处理是该年的第几秒/求输入D天后是哪年哪月哪日/求输入时间s秒后是何时何日* 程序输出:略* 问题分析:略* 算法设计:略*/#include <iostream>using namespace std;int sort1(int ,int ,int );//处理该日在本年中是第几天void sort2(int ,int ,int ,long );//处理是该天的第几秒void sort3(int ,int ,int,int,int,long);//处理是该年的第几秒void sort4(int ,int ,int ,int );//求输入D天后是哪年哪月哪日void sort5(int ,int ,int,int,int,long);//求输入时间s秒后是何时何日struct Date{    int year;    int month;    int day;    int hour;    int minite;    long second;};int main(){    Date date;    int days1,t1=0;    cout << "请输入年、月、日、时、分、秒:" << endl;    cin>>date.year>>date.month>>date.day>>date.hour>>date.minite>>date.second;    t1=sort1(date.year,date.month,date.day);    cout<<"该日在"<<date.year<<"中是第"<<t1<<"天。"<<endl;    sort2(date.day,date.hour,date.minite,date.second);    sort3(date.year,date.month,date.day,date.hour,date.minite,date.second);    cout<<"请输入你想知道的几天后是哪年的哪月哪天:"<<endl;    cin>>days1;    sort4(date.year,date.month,date.day,days1);    sort5(date.year,date.month,date.day,date.hour,date.minite,date.second);    cout<<endl;    return 0;}//处理该日在本年中是第几天int sort1(int year,int month,int day){    int i,t=0;    for(i=0; i<month; i++)    {        if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))        {            t+=31;        }        else if(i==2)        {            if(((year%4==0)&&(year%100!=0))||(year%400==0))            {                t+=29;            }            else            {                t+=28;            }        }        else        {            t+=30;        }    }    t+=day;    return t;}//处理是该天的第几秒void sort2(int day,int hour,int minite,long second){    int i,j,sum=0;    for(i=0; i<hour; i++)    {        sum+=60*60;    }    for(j=0; j<minite; j++)    {        sum+=60;    }    sum+=second;    cout<<"是这一天的"<<sum<<"秒."<<endl;}//处理是该年的第几秒void sort3(int year,int month,int day,int hour,int minite,long second){    int sum2=0,s1=0;    s1=sort1(year, month, day);    int i,j,k;    for(i=0; i<s1; i++)    {        sum2+=24*60*60;    }    for(j=0; j<hour; j++)    {        sum2+=60*60;    }    for(k=0; k<month; k++)    {        sum2+=60;    }    sum2+=second;    cout<<"是这一年的"<<sum2<<"秒."<<endl;}//求输入D天后是哪年哪月哪日void sort4(int year,int month,int day,int days){    int s2=0,m1=0,su=0;    int i,j;    su=days;    s2=sort1(year, month, day);    days+=s2;    for(i=0; days>=365 ; i++)    {        if(((year%4==0)&&(year%100!=0))||(year%400==0))        {            days-=366;            year+=1;        }        else        {            days-=365;            year+=1;        }    }    for(j=0; days>=28; j++)    {        if((j==1)||(j==3)||(j==5)||(j==7)||(j==8)||(j==10)||(j==12))        {            days-=31;        }        else if(j==2)        {            if(((year%4==0)&&(year%100!=0))||(year%400==0))            {                days-=29;            }            else            {                days-=28;            }        }        else        {            days-=30;        }        m1+=1;    }          cout<<su<<"天后是"<<year<<"年"<<month<<"月"<<days<<"日"<<endl;}//求输入时间s秒后是何时何日void sort5(int year,int month,int day,int hour,int minite,long second){    int seconds,s3=0,hours=0,minites=0,m1=0,d1=0;    int i,j,k,l,f,n;   cout<<"请输入你想知道的几秒后是哪天的何时:"<<endl;    cin>>seconds;    s3=seconds;    seconds=seconds+second+minite*60+hour*60*60+day*24*60*60;    for(n=0;n<month;n++)    {        if((n==1)||(n==3)||(n==5)||(n==7)||(n==8)||(n==10)||(n==12))        {            seconds+=31*24*60*60;        }        else if(n==2)        {            if(((year%4==0)&&(year%100!=0))||(year%400==0))            {            seconds+=29*24*60*60;            }            else            {            seconds+=28*24*60*60;            }        }        else        {            seconds+=30*24*60*60;        }    }    for(i=0;seconds>=24*60*60;i++)    {        seconds-=24*60*60;        d1+=1;    }    for(j=0;seconds>=60*60;j++)    {        seconds-=60*60;        hours+=1;    }    for(k=0;seconds>=60;k++)    {        seconds-=60;        minites+=1;    }    for(l=0; d1>=365 ; l++)    {        if(((year%4==0)&&(year%100!=0))||(year%400==0))        {            d1-=366;            year+=1;        }        else        {            d1-=365;            year+=1;        }    }    for(f=0; d1>=28; f++)    {        if((f==1)||(f==3)||(f==5)||(f==7)||(f==8)||(f==10)||(f==12))        {            d1-=31;        }        else if(f==2)        {            if(((year%4==0)&&(year%100!=0))||(year%400==0))            {                d1-=29;            }            else            {                d1-=28;            }        }        else        {            d1-=30;        }        m1+=1;}cout<<s3<<"秒后是"<<year<<"年的"<<m1<<"月"<<d1<<"日"<<hours<<"时"<<minites<<"分"<<seconds<<"秒"<<endl;}

心得体会:慢慢做

0 0
原创粉丝点击