特殊日历

来源:互联网 发布:软件开发手册模板 编辑:程序博客网 时间: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;}