• 2050第二题- 时间间隔 (HDU


    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
    ", sum1);
        }
        return 0;
    }
  • 相关阅读:
    java中的各种Queue
    关闭线程的一些问题
    Exchanger
    文件锁FileLock
    StringBuffer和String需要注意的
    maven出现:Failed to execute goal on project ...: Could not resolve dependencies for project ...
    pringboot pom文件引入本地jar包和对其打jar包
    SpringBoot热部署的两种方式
    idea 自动导入包和自动将没用的包去除
    springCould:使用Feign 实现声明式服务调用
  • 原文地址:https://www.cnblogs.com/RootVount/p/10939725.html
Copyright © 2020-2023  润新知