您的位置:首页 > 其它

Hust oj 1177 Time Transform(字符串)

2016-05-26 20:44 423 查看
Time Transform
Time Limit: 1000 MSMemory Limit: 65536 K
Total Submit: 289(124 users)Total Accepted: 124(109 users)Rating:





Special Judge: No
Description
中国采用的日期格式通常为“年年年年/月月/日日”(yyyy/mm/dd),而西方所用的日期格式通常为“月月/日日/年年年年”(mm/dd/yyyy)。

另一方面,对小时的统计国际上也分为“24小时制”和“12小时制”。对于“12小时制”,使用am和pm区分上午和下午。

现在要求是,将时间由“年年年年/月月/日日”+"24小时制"的形式转换为“月月/日日/年年年年”+“12小时制”的形式。

特别规定:12:00:00pm代表中午12点,12:00:00am代表凌晨12点。

Input
第一行为一个整数T(T<=10),表示测试用例数目。

接下来的T行,每行都是一个需要转换的时间日期字符串。
Output
对于每个测试用例,输出结果,一行一个。
Sample Input
2
2010/12/07-12:12:12
1988/01/01-00:01:01

Sample Output
12/07/2010-12:12:12pm
01/01/1988-12:01:01am

用字符串模拟

#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
char a[1005];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%s",a);
int flag = 0;
int hour = (a[11]-'0')*10+(a[12]-'0');
if(hour == 12 || hour == 0)
{
if(a[14] - '0' > 0 && a[15] -'0' > 0)
flag = 1;
a[11] = '1';
a[12] = '2';
}
if(hour > 12)
{
flag = 1;
a[11] = ((a[11] - '0') - 1) + '0';
a[12] = ((a[12] - '0') - 2) + '0';
}
printf("%c%c/%c%c/%c%c%c%c-%c%c:%c%c:%c%c",a[5],a[6],a[8],a[9],a[0],a[1],a[2],a[3],a[11],a[12],a[14],a[15],a[17],a[18]);
if(flag == 1)
printf("pm\n");
else
printf("am\n");
}
return 0;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: