Description

有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。它每天有10个小时,每个小时有100分钟,每分钟有100秒。10天算一周,10周算一个月,10个月算一年。现在要你编写一个程序,将我们常用的日历法的日期转换成这种特殊的日历表示法。这种日历法的时、分、秒是从0开始计数的。日、月从1开始计数,年从0开始计数。秒数为整数。假设 0:0:0 1.1.2000 等同于特殊日历法的 0:0:0 1.1.0。
Input
第一行是一个正整数 N ,表明下面有 N 组输入。每组输入有一行,格式如下:hour:minute:second day.month.year 表示常规的日期。日期总是合法的。2000 <= year <= 50000。
Output
每组输入要求输出一行。格式如下:mhour:mmin:msec mday.mmonth.myear 是输入日期的特殊日历表示方法。
Sample Input
7
0:0:0 1.1.2000
10:10:10 1.3.2001
0:12:13 1.3.2400
23:59:59 31.12.2001
0:0:1 20.7.7478
0:20:20 21.7.7478
15:54:44 2.10.20749
Sample Output
0:0:0 1.1.0
4:23:72 26.5.0
0:8:48 58.2.146
9:99:98 31.8.0
0:0:1 100.10.2000
0:14:12 1.1.2001
6:63:0 7.3.6848
Source
2210

 

 

 

解析:看到这个题目,其实不难思考到这道题目的本质,就是在例子中寻找规律。

首先

题目中第一句话就提到“它的一天和我们现在用的日历法的一天是一样长的”,所以在“年”“月”“日”是不需要考虑转化的,只需要将输入的日期中的总天数计算出来,再根据特殊日历的规则转化就可以了。

其次

本题的重点就是“时”“分”“秒”的转化,那么又要来思考一下第一句话的意思了“它的一天和我们现在用的日历法的一天是一样长的”,可以打一个很恰当的比喻,把两个日历中的一天比喻成两根等长的线段,在我们平常的日历中把这根线段分成86400(24*3600)等份;而在这个特殊日历中把这根线段分成100000(10*100*100)等份,所以在编程过程中要将总秒数/0.864,然后下取整,再来计算。

所以

本题中最要理解就是第一句话“它的一天和我们现在用的日历法的一天是一样长的”,能够理解正确,题目自然能解决了。

 

 

 
 
#include<bits/stdc++.h>
using namespace std;
int a[100],yue[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},pp,ans=0;
int main()
{
cin>>pp;
for(int o=1;o<=pp;o++)
{
char ch;
ans=0;
cin>>a[1]>>ch>>a[2]>>ch>>a[3]>>a[4]>>ch>>a[5]>>ch>>a[6];//读入
for(int i=2000;i<a[6];i++) if(i%400==0||(i%100!=0&&i%4==0)) ans++;
if(a[6]%400==0||(a[6]%100!=0&&a[6]%4==0)) yue[2]=29;else yue[2]=28;//判断闰年
    a[6]-=2000;
ans+=a[6]*365;
for(int i=1;i<=a[5]-1;i++) ans+=yue[i];
ans+=a[4]-1;//计算到总天数
int myear=0,mmonth=0,mday=0;
myear=ans/1000;
ans%=1000;
mmonth=ans/100+1;
mday=ans%100+1;
ans=a[1]*3600+a[2]*60+a[3];//计算到总秒数
double aans=(double)ans/0.864;//处理总秒数
    ans=floor(aans);
int mhour=0,mmin=0,msec=0;
mhour=ans/10000;
ans%=10000;
mmin=ans/100;
msec=ans%100;
cout<<mhour<<':'<<mmin<<':'<<msec<<' '<<mday<<'.'<<mmonth<<'.'<<myear;
cout<<endl;
}
}
总Time Limit: Memory Limit:
1000ms 65536kB

NOIOpenjudge 1.13--08特殊日历计算相关推荐

  1. OpenJudge NOI 1.13 08:特殊日历计算

    [题目链接] OpenJudge NOI 1.13 08:特殊日历计算 [题目考点] 1- 取模运算 [解题思路] 我们用的是现实日历,题目中设定的是特殊日历,两种历法的一天是一样长的.也就是说两种历 ...

  2. GMT时间格式转换(Mon Feb 13 08:00:00 GMT+08:00 2012)

    普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小 ...

  3. UA MATH524 复变函数13 补充:留数计算的例题

    UA MATH524 复变函数13 补充:留数计算的例题 概念与公式总结 例题 pole的留数公式 Laurent级数法 概念与公式总结 孤立奇点类型与判断 假设z0z_0z0​是复变函数fff的孤立 ...

  4. matlab中计算运行时间的函数,【谁能都我一个计算时间的函数?是计算:例如上午08:00...-计算时间的函数-数学-伊凡渴同学...

    概述:本道作业题是伊凡渴同学的课后练习,分享的知识点是计算时间的函数,指导老师为干老师,涉及到的知识点涵盖:[谁能都我一个计算时间的函数?是计算:例如上午08:00...-计算时间的函数-数学,下面是 ...

  5. 169_技巧_Power BI 依据促销日历计算销售金额

    169_技巧_Power BI 依据促销日历计算销售金额 一.背景 在各位表格表姐们计算销售金额的时候,有一个绕不开的问题:商品有促销的问题,需要使用对应的促销价来计算销售额. 按照惯例还是先来看看结 ...

  6. java 日历计算农历和节假日的常用类(包括除夕的算法)

    最近在写日历,发现很多开源的常用的日历根本不能显示出除夕这个节日,所以在github上找到一个计算出大部分农历之后修改了一下,这里科普下,除夕有可能是29,也有可能是30,中国农历一个月只有29天或者 ...

  7. java 日历计算农历和节假日的常用类

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import ja ...

  8. OpenJudge百炼-2967-特殊日历计算-C语言-日期处理

    描述: 有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的.它每天有10个小时,每个小时有100分钟,每分钟有100秒.10天算一周,10周算一个月,10个月算一年.现在要你编写一个程序 ...

  9. 日历计算(C++类实现)

    type1:实现某年某月某日往前或往后N天后日历的输出. type2:实现两个日期之间相差天数的计算. #include <iostream> using namespace std;in ...

最新文章

  1. 本科生连发数篇SCI,你的第一篇SCI发表了吗?
  2. 【风控策略】大数据风控策略逻辑
  3. POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)
  4. 人工智能学习--文本识别实践-tesseract-ocr
  5. Extjs 4.1 学习笔记(二)(panel 自适应高度)
  6. C#校验身份证(15位、18位)
  7. java 记住密码的实现_javaweb实现记住密码功能
  8. Android webview网页截取长图
  9. phpcms 允许英文目录有空格
  10. uniapp仿网易云音乐项目(发布小程序、H5和安卓App)
  11. FPGA学习笔记(七): DSB调制解调的仿真
  12. 进制详解:二进制、八进制和十六进制
  13. 【看好了】如何使用fiddler实现手机抓包,Filters过滤器!
  14. 台式计算机网卡型号怎么查找,台式机无线网卡如何查看型号
  15. 动物科学可以转计算机专业吗,报考华中农业大学计算机,被调剂到动物科学,真不该盲目服从...
  16. CAD引线标注文字大小怎么调整?
  17. Docker镜像上传到DockerHub和阿里容器仓库
  18. Tomcat服务器日志打印
  19. esp32录音功能开发_【安信可ESP32语音开发板专题①】ESP32-A1S音频开发板之离线语音识别控制LED灯...
  20. JIRA 的中文设置

热门文章

  1. 阿里研发:核心系统--中间件--阿里云--yunOS介绍
  2. 3.1 设备管理员 一键锁屏
  3. 手绘与码绘————让画面动起来!
  4. 二十四种设计模式之代理模式
  5. 计算机在化学中的应用视频教学,计算机多媒体在中学化学中的应用
  6. 数据分析工具实例:通过数据展示对转基因食品的思考
  7. 【QT】《Qt5.9 C++开发指南》在桌面上放个伊芙利特
  8. 吸烟(抽烟)检测和识别2:Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码)
  9. 用这个模型,学会系统性成长
  10. 劝大家趁早摆脱低水平努力