您的位置:首页 > 其它

02周:项目四:玩日期

2014-03-09 15:18 309 查看
/*
* 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,int);//求输入时间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);
    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;

}




心得体会:慢慢来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: