地址:http://hihocoder.com/problemset/problem/1477

题目:

闰秒

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

计算机系统中使用的UTC时间基于原子钟,这种计时方式同“地球自转一周是24小时”的计时方式有微小的偏差。为了弥补这种偏差,我们偶尔需要增加一个“闰秒”。

最近的一次闰秒增加发生在UTC时间2016年的最后一天。我们在2016年12月31日23时59分59秒和2017年1月1日0时0分0秒之间增加了这样一秒:2016年12月31日23时59分60秒,记作2016-12-31 23:59:60。

目前一共增加了27次闰秒,具体添加的时间见下表:

给出两个时间,请你判断在考虑闰秒的情况下,这两个时间间隔多少秒。

输入

两个时间各占一行,格式是yyyy-MM-dd HH:mm:ss,范围在1970-01-01 00:00:00至2017-03-12 23:59:59之间。保证第一个时间不晚于第二个时间。

输出

两个时间间隔多少秒。

样例输入
2016-12-31 23:59:59
2017-01-01 00:00:00
样例输出
2思路:没啥好说的,大模拟!见代码吧!
 1 #include <bits/stdc++.h>
 2
 3 using namespace std;
 4
 5 #define PB insert
 6 typedef long long LL;
 7 typedef pair<int,int> PII;
 8 const double eps=1e-8;
 9 const double pi=acos(-1.0);
10 const int K=1e6+7;
11 const int mod=1e9+7;
12
13 struct Time
14 {
15     int y,m,d,h,mi,s;
16     void read(void)
17     {
18         scanf("%d-%d-%d %d:%d:%d",&y,&m,&d,&h,&mi,&s);
19     }
20 }st,se;
21 set<int>six,dece;
22 int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
23 void init(void)
24 {
25     st.read(),se.read();
26     six.PB(1972),six.PB(1981),six.PB(1982),six.PB(1983);
27     six.PB(1985),six.PB(1992),six.PB(1993),six.PB(1994);
28     six.PB(1997),six.PB(2012),six.PB(2015);
29     dece.PB(1972),dece.PB(1973),dece.PB(1974),dece.PB(1975);
30     dece.PB(1976),dece.PB(1977),dece.PB(1978),dece.PB(1979);
31     dece.PB(1987),dece.PB(1989),dece.PB(1990),dece.PB(1995);
32     dece.PB(1998),dece.PB(2005),dece.PB(2008),dece.PB(2016);
33 }
34 bool check(int x)
35 {
36     return (x%4==0&&x%100!=0)||x%400==0;
37 }
38 int cal(Time &x)
39 {
40     int ans=0;
41     for(int i=1;i<x.m;i++)
42         ans+=day[i]*24*60*60;
43     if(check(x.y)&&2<x.m)   ans+=24*60*60;
44     ans+=(x.d-1)*24*60*60;
45     ans+=x.h*60*60;
46     ans+=x.mi*60;
47     ans+=x.s;
48     if(six.find(x.y)!=six.end()&&6<x.m)ans++;
49     return ans;
50 }
51 int main(void)
52 {
53     int ta,tb,ans=0;
54     ta=365*24*60*60;
55     tb=366*24*60*60;
56     init();
57     for(int i=st.y;i<se.y;i++)
58     {
59         if(check(i))    ans+=tb;
60         else    ans+=ta;
61         if(six.find(i)!=six.end()) ans++;
62         if(dece.find(i)!=dece.end())    ans++;
63     }
64     ans-=cal(st);
65     ans+=cal(se);
66     cout<<ans<<endl;
67     return 0;
68 }

转载于:https://www.cnblogs.com/weeping/p/6541405.html

hihocoder1477 闰秒相关推荐

  1. ATS和闰秒那些事儿

    受昨晚闰秒问题影响,今天内网和线上的ATS服务器都出现了CPU负载增高的问题,参见下面的截图 下面是tsar监控到负载异常记录,从今天(20150701)早上8:05分开始: 我们内网和线上的服务器L ...

  2. 如何解决2012年7月1日增加闰秒后引起linux系统重启问题

    国际地球自转和参考坐标系统服务(IERS)将在格林威治时间2012年6月30日午夜增加一闰秒(维基百科关于闰秒的说明),由于Linux kernel和Posix关于NTP时间跳变的标准不同,将在201 ...

  3. linux内核时间second,闰秒(leap second)和linux/unix时间

    以前只知道有闰年,最近听说了一个新名词,叫闰秒.因为它造成了我工作中的一个模块的crash,经过不懈的google + wikipedia,终于了解了一二,在这里简单分享一下. 一. 闰秒的由来 在现 ...

  4. 2017元旦,你被闰秒吓到了吗? - 闰秒背景与数据库处理

    2017元旦,你被闰秒吓到了吗? - 闰秒背景与数据库处理 http://click.aliyun.com/m/8960/ 转载于:https://www.cnblogs.com/iyulang/p/ ...

  5. 闰秒对数据库和linux的影响

    xiangzhenggui(向正贵) 07-01 17:52:36 从日志情况看,这次zookeeper,hadoop出现异常确实与2015年7月1号8:00闰秒有关系 xiangzhenggui(向 ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 服务器闰秒 linux,闰秒导致部分 Linux 服务器高 CPU 使用率

    国际地球自转和参考坐标系统服务(IERS)在2012年6月30日午夜(北京时间7月1号7点59分59秒)增加一闰秒(即出现7:59:60). 由于Linux kernel 2.6.29之前版本存在bu ...

  8. 部分 DNS 查询因闰秒 bug 报错

    2016年12月31日增加了一闰秒,31日11点59分59秒之后不是2017年,而是59分60秒.增加闰秒在过去几年发生过多次,主要互联网公司都对此已有经验.但云计算公司Cloudflare报告,它的 ...

  9. 2017年闰秒linux_2017年Linux专业人员的4个热门技能

    2017年闰秒linux 成为Linux专家的问题之一是定义在不断变化. 当我开始从事Linux领域(被视为Linux专家)时 ,您必须能够编译自己的内核. 哎呀,如果要在笔记本电脑上使用Linux, ...

最新文章

  1. python中ix用法_Python中使用ix的数据帧子集
  2. windows 启动停止 java进程
  3. python四大高阶函数_四大高阶函数
  4. 82-Spark的StandLone模式调试
  5. 诺基亚造平板到底前途几何?
  6. hive大字段拼接与切割实战(一个大字段保存每天历史数据)
  7. 服务器技术文件,服务端开发技术文档要包含什么?
  8. leetcode之有效的括号
  9. linux c 宏 文件名,C语言标准宏获取文件名、行号、函数名的方法以及#和##的用法...
  10. POJ 1005 I Think I Need a Houseboat
  11. snmp扫描工具linux,SugarNMSTool-SugarNMSTool(snmp工具)下载 v2.0官方版--pc6下载站
  12. 多文件云传输系统框架
  13. 安卓软件改名器_安卓歌词适配V3.9.5 无损音乐下载器(软件篇)
  14. 给opensuse安装文泉驿字体
  15. 深度学习面试题常见问答
  16. 每天学命令get_property
  17. 2022-2028年中国手机银行行业市场竞争态势及未来前景分析报告
  18. 如何带好一个团队?团队管理的要点有哪些?
  19. 做裂变新增全靠运气吗?绝对不是哦!
  20. python 检查代码规范,类型标注

热门文章

  1. 在laravel5.8中集成swoole组件----用协程实现的服务端和客户端(二)---静态文件如何部署...
  2. php opcache 详解
  3. Spring-boot(一)
  4. jquery点击完一个按钮,并且触发另一个按钮
  5. l2-006 树的遍历
  6. 一个简单的C#获取Session、设置Session类文件
  7. selenium webdriver python 元素操作
  8. win2003+IIS6+PHP5.3.8+MSSQL2008的安装配置
  9. SendMessage函数的常用消息及其应用
  10. jdbc获取结果行数_java – 如何判断从JDBC执行更改的行数