当前位置:编程学习 > C/C++ >>

输出对应的那一天是这一年的第几天

[cpp]  
/* 
 * 程序的版权和版本声明部分 
 * Copyright (c)2013, 烟台大学计算机学院学生 
 * All rightsreserved. 
 * 文件名称: date.cpp 
 * 作    者:纪子龙 
 * 完成日期: 2013 年 3 月 8 日 
 * 版本号: v1.0 
 * 输入描述:年月日 
 * 问题描述:输出对应的那一天是这一年的第几天 
 * 输出:第几天 
 */  
#include <iostream>  
using namespace std;  
struct Date  
{  
    int year;  
    int month;  
    int day;  
    int hour;  
    int minu;  
    long second;  
};  
  
int sumday(int m);  
int main()  
{  
    int days;  
    long dseconds,yseconds;  
    Date date;  
    cout<<"please input year month day hour minu,second"<<endl;  
    cin>>date.year>>date.month>>date.day>>date.hour>>date.minu>>date.second;  
    if(date.month==1)  
        days=date.day;  
    if(date.month==2)  
        days=31+date.day;  
    if (date.year%4==0&&date.month>2) {  
    if (date.month<8){  
    days=date.day+sumday(date.month)-1;  
    }else{  
        days=date.day+sumday(7)+sumday(date.month-7)-1;  
    }  
    }  
    if (date.year%4!=0&&date.month>2) {  
        if (date.month<8){  
            days=date.day+sumday(date.month)-1;  
        }else{  
            days=date.day+sumday(7)+sumday(date.month-7)-1;  
        }  
    }  
    //求秒数  
    dseconds=(date.hour-1)*3600+(date.minu-1)*60+date.second;  
    yseconds=(days-1)*3600*24+dseconds;  
    cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天."<<date.minu<<"分"<<date.second<<"秒是这一天的第"<<dseconds<<"秒,是这一年的第"<<yseconds<<"秒"<<endl;  
    return 0;  
}  
int sumday(int m)  
{  
    if (m-1==0)  
        return 0;  
    if ((m-1%2)==0)  
        return 31+sumday(m-1);  
    else  
        return 30+sumday(m-1);  
}  
  
运行结果:  
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,