代码如下:
#include <bits/stdc++.h>
using namespace std;
int n, m, y, mon, d, h, minu, s;
bool leap(int year)
{
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
void month()
{
if ((mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) && d > 31)
{
d -= 31;
mon++;
}
else if ((mon == 4 || mon == 6 || mon == 9 || mon == 11) && d > 30)
{
d -= 30;
mon++;
}
else if (mon == 2 && d > (leap(y) ? 29 : 28))
{
d -= (leap(y) ? 29 : 28);
mon++;
}
else
{
return;
}
y += (mon - 1) / 12;
mon = (mon - 1) % 12 + 1;
month();
}
int main()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> m >> y >> mon >> d >> h >> minu >> s;
m = pow(2, m - 1) - 1;
s += m;
minu += s / 60;
s %= 60;
h += minu / 60;
minu %= 60;
d += h / 24;
h %= 24;
month();
y += mon / 12;
mon %= 12;
cout << y << ' ' << mon << ' ' << d << ' ' << h << ' ' << minu << ' ' << s << endl;
}
return 0;
}