首页 > 其他 > 详细

2050第二题- 时间间隔 (HDU - 6491)

时间:2019-05-28 19:39:12      阅读:148      评论:0      收藏:0      [点我收藏+]
2019年1月1日,在云栖出现了可能是全世界最长的以秒为单位的倒计时装置:九亿多秒倒计时,直到2050年。

给出一个时间S,我们想知道S距离2050年1月1日0点0时0分多少秒。

因为答案可能很大,请输出答案模100的值。

Input第一行一个正整数 T (1T100000)T (1≤T≤100000) 表示数据组数。

对于每组数据,一行一个字符串表示时间。
时间格式为:YYYY-MM-DD HH:MM:SS,分别表示年、月、日、时,分、秒。

输入的时间保证都在2019年1月1日以后(包含当天)。
Output对于每组数据输出一行一个整数表示答案。Sample Input

1
2019-01-01 00:00:00

Sample Output

0
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <map>
#include <vector>
using namespace std;

#define ll long long

ll sum1, sum2, sum3;
int year, month, day, h, mi, s, t;

int main()
{
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d-%d-%d%d:%d:%d", &year, &month, &day, &h, &mi, &s);
        sum1 = 0;
        sum2 = 0;
        sum3 = 0;
        int mon[13] = {8, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        for(int y = year; y<2050; y++)
        {
            if((y%4 == 0 && y%100 != 0) || y%400 == 0) sum1 += 366;
            else sum1 += 365;
            if((y%4 == 0 && y%100 != 0) || y%400 == 0) mon[2] = 29;
            for(int m = 1; m<month; m++)
                sum2 += mon[m];
        }
        sum3 += 86400-(h*3600+mi*60+s);
        sum2 += day-1;
        sum1 -= sum2;
        sum1 *= 86400;
        sum1 = (sum1%100+sum3%100)%100;
        printf("%d\n", sum1);
    }
    return 0;
}

 

2050第二题- 时间间隔 (HDU - 6491)

原文:https://www.cnblogs.com/RootVount/p/10939725.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!