[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); } 運行結果: