zoukankan      html  css  js  c++  java
  • HOJ 2315 Time(模拟)

    Description

    Kim是一个掌控时间的大师。不同于一般人,他习惯使用秒来计算时间。如果你问他现在是几点,他会告诉你现在是今天的xxxx秒。Mik想要考考Kim。他想知道从某一天的00:00:00开始,经过s秒后是哪一天。但是Mik不会计算答案,他需要你的帮助。

    注意:我们认为一天从00:00:00开始,到23:59:59结束。00:00:00经过1秒后是00:00:01;从00:00:00开始,加86400(60*60*24)秒后就是下一天的00:00:00.

    Input

    第一行一个整数T表示数据组数。

    接下来T行,每行一个日期yyyy-MM-dd,接下来一个整数s表示s秒。

    Output

    对于每个输入,输出一行yyyy-MM-dd 表示答案。对于不足两位的数要补齐前导0。

    Sample Input
    3
    2016-12-10 1000
    2016-02-28 86400
    2016-01-01 1000000
    
    Sample Output
    2016-12-10
    2016-02-29
    2016-01-12
    
    Hint

    T<=100

    s<=2147483647

    日期在1800-01-01到2100-01-01之间

    闰年的判断:

    1.能被4整除且不能被100整除的为闰年.

    2.能被400整除的是闰年.

    Source
    "科林明伦杯"哈尔滨理工大学第六届程序设计团队赛
    #include<cstdio>
    #include<iostream>
    
    using namespace std;
    
    char s[10];
    int table[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int t,year,mon,day;
    long long ti;
    
    int check(int n)
    {
        if(n%4==0)return 1;
        if(n%4==0&n%100!=0)return 1;
        return 0;
    }
    
    int getday(int n)
    {
        if(n==2)return check(year)?29:28;
        return table[n];
    }
    
    int main()
    {
        cin>>t;
        while(t--)
        {
            year=mon=day=0;
            cin>>s>>ti;
    
            year+=(s[0]-'0')*1000;
            year+=(s[1]-'0')*100;
            year+=(s[2]-'0')*10;
            year+=(s[3]-'0');
            mon+=(s[5]-'0')*10;
            mon+=s[6]-'0';
            day+=(s[8]-'0')*10;
            day+=s[9]-'0';
    
            day+=(ti/86400);
    
            while(day>0)
            {
                day-=getday(mon++);
                if(day<=0){mon--;day+=getday(mon);break;}
                if(mon==13)
                {
                    mon=1;
                    year++;
                }
            }
            printf("%d-",year);
            if(mon<10)printf("0%d-",mon);else printf("%d-",mon);
            if(day<10)printf("0%d
    ",day);else printf("%d
    ",day);
        }
        return 0;
    }
  • 相关阅读:
    函数的命名空间和作用域
    python 各个地方导航(方便查询,持续更新!)
    零基础学虚幻4(UE4):蓝图+VR 丁树凯教程
    UE4打包后的游戏,无法打卡其他关卡的解决办法
    【精辟】进制转换
    Git仓库的初始化
    【编程】杂碎知识点
    MFC制作带界面的DLL库
    StartImage.DLL使用说明
    MFC对话框程序:实现程序启动画面
  • 原文地址:https://www.cnblogs.com/HadesBlog/p/8034098.html
Copyright © 2011-2022 走看看