题目链接

思路如下

把时间转化为 24小时制下进行考虑,首先我们要明白(在24小时制下):12 点表示是下午PM ,而 24点表示的是明天的 0点(12小时制下),这两个地方需要特殊考虑

题解如下

#include<iostream>
#include<string>
#include<map>
using namespace std; int main()
{
map<string,int> mp;
mp["Beijing"] = 8;
mp["Washington"] = -5;
mp["London"] = 0;
mp["Moscow"] = 3;
int t;
cin>>t;
int case_ = 1;
while(t --)
{
int h,m;
char a;
string str;
cin>>h>>a>>m>>str;
string st1,st2;
cin>>st1>>st2;
//下边两个if条件 对 h == 12 时进行特殊处理,
//如果 str == "AM" 则 h == 12 对应的24时制下的时间 为 0点(凌晨 0 点)
//如果 str == "PM" 则 h == 12 对应的24时制下的时间 为 12点 (中午 12 点)
if(h == 12)
h = 0;
if (str == "PM")
h += 12; h -= mp[st1];
h += mp[st2]; string day = "Today";
if(h < 0)
day = "Yesterday";
else if(h >= 24)
day = "Tomorrow";
h += 24;
h %= 24; str = "AM";
if(h >= 12)
{
str = "PM";
}
if(h == 0)
h = 12;
else if(h > 12)
h -= 12; printf("Case %d: ",case_++);
printf("%s %d:%02d %s\n", day.c_str(), h, m, str.c_str());
} return 0;
}

最新文章

  1. 学习CodeIgniter框架之旅(二)继承自定义类
  2. Codeforces118D Caesar&#39;s Legions(DP)
  3. C语言位运算详解[转]
  4. HDU 1231 最大连续子序列
  5. C# 获取计算机 信息
  6. WPF-24:绘制正多边形
  7. Objective-c中的单例
  8. 安卓系统启动脚本init.rc说明文件readme.txt翻译
  9. iBatis.Net的基本情况和运行原理
  10. 自定义合并列:el-table
  11. Go指南练习_斐波纳契闭包
  12. 【托业】【新托业TOEIC新题型真题】学习笔记11-题库六-P7
  13. 关于MySQL大量数据分页查询优化
  14. Oracle VM VirtualBox启动后莫名奇妙的报错
  15. postman app支持浏览器上的cookie
  16. Linux编写一个C程序HelloWorld
  17. coredns 代理consul 运行noamd 部署的应用
  18. WPF 使用附加属性增加控件属性
  19. 有关javaEE及WebGIS的一些地址
  20. Ruby 踩坑 &ldquo;Failed to build gem native extension&rdquo;

热门文章

  1. python实验一
  2. vue 点击跳转路由设置
  3. Iterator接口(遍历器)和for/of循环
  4. Idea - 常用基础配置
  5. css3 HSLA 颜色制造半透明效果
  6. NoVNC API 文档翻译
  7. C++ 随机函数/伪随机函数
  8. Android网络开发
  9. How to do error checking in CUDA(如何在CUDA里做错误检查)
  10. 【TIJ4】第四章全部习题