Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
这题关键是闰年的处理, 我把代码贴出来给你参考In Reply To:这都会wa!!没天理了! Posted by:ferrettemp at 2005-03-16 09:09:25 #include <iostream> #include <algorithm> #include <cmath> #include <cstdio> using namespace std; int days[][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, }, }; int is_leap(int year); int main(int argc, char *argv[]) { int n; cin >> n; while (--n >= 0) { int hour, min, secs; int day, month, year; char tmp; scanf("%d:%d:%d %d.%d.%d", &hour, &min, &secs, &day, &month, &year); int total = 0; total += 365*(year - 2000) + (year - 2000)/4 - (year - 2000)/100 + (year - 2000)/400; total += !is_leap(year); for (int i = 0; i < month-1; ++i) total += days[is_leap(year)][i]; total += day - 1; day = total % 100 + 1; month = total/100 % 10 + 1; year = total/1000; total = 0; total += hour * 60 * 60; total += min * 60; total += secs; total *= 125; total = total/108; secs = total % 100; min = total/100 % 100; hour = total / 10000; printf("%d:%d:%d %d.%d.%d\n", hour, min, secs, day, month, year); } return 0; } int is_leap(int year) { return (year%4 == 0) && year%100 || (year%400 == 0); } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator