特殊日历
来源:互联网 发布:软件开发手册模板 编辑:程序博客网 时间:2024/04/29 15:38
#include <iostream>using namespace std;bool isleap(int year){ if (year % 4 != 0 || (year % 100 == 0 && year % 400 != 0)) return false; else return true;}int main(){ double k = (double)(10 * 100 * 100) / (24 * 60 * 60.00) ; int N; cin >> N; for(; N >= 1; N--) { int hour, min, sec, day, month, year; int mhour, mmin, msec, mday, mmonth, myear; int Day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int totalSec = 0; int totalDay = 0; cin >> hour; cin.ignore(); cin >> min; cin.ignore(); cin >> sec; cin >>day; cin.ignore(); cin >> month; cin.ignore(); cin >> year; if(isleap(year)) { Day[2] = 29; } for(int i = 2000; i < year; i++) { if(isleap(i)) { totalDay += 366; } else { totalDay += 365; } } for(int i = 1; i < month; i++) { totalDay += Day[i]; } totalDay += day; totalSec = hour * 60 * 60 + min * 60 + sec; if(totalDay % 1000 == 0) { myear = totalDay / (10 * 10 * 10) - 1; mmonth = 10; mday = 100; totalDay = 0; } else { myear = totalDay / 1000; totalDay %= 1000; if(totalDay % 100 == 0) { mmonth = totalDay / (100); mday = 100; } else { mmonth = totalDay / (100) + 1; mday = totalDay % 100; } } totalSec *= k; mhour = totalSec / (100 * 100); totalSec %= (100 * 100); mmin = totalSec / 100; totalSec %= 100; msec = totalSec; cout << mhour << ":" << mmin << ":" << msec << " " << mday << "." << mmonth << "." << myear << endl; } return 0;}