POJ-3751 時間日期格式轉換-24小時制/12小時制

kewlgrl發表於2015-08-16
時間日期格式轉換
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 7708   Accepted: 3600

Description

世界各地有多種格式來表示日期和時間。對於日期的常用格式,在中國常採用格式的是“年年年年/月月/日日”或寫為英語縮略表示的”yyyy/mm/dd”,此次程式設計大賽的啟動日期“2009/11/07”就是符合這種格式的一個日期,而北美所用的日期格式則為“月月/日日/年年年年”或”mm/dd/yyyy”,如將“2009/11/07”改成這種格式,對應的則是”11/07/2009”。對於時間的格式,則常有12小時制和24小時制的表示方法,24小時制用0-24來表示一天中的24小時,而12小時制只採用1-12表示小時,再加上am/pm來表示上午或下午,比如”17:30:00”是採用24小時制來表示時間,而對應的12小時制的表示方法是”05:30:00pm”。注意12:00:00pm表示中午12點,而12:00:00am表示凌晨12點。

對於給定的採用”yyyy/mm/dd”加24小時制(用短橫線”-”連線)來表示日期和時間的字串,請程式設計實現將其轉換成”mm/dd/yyyy”加12小時制格式的字串。

Input

第一行為一個整數T(T<=10),代表總共需要轉換的時間日期字串的數目。
接下來的總共T行,每行都是一個需要轉換的時間日期字串。

Output

分行輸出轉換之後的結果

Sample Input

2
2009/11/07-12:12:12
1970/01/01-00:01:01

Sample Output

11/07/2009-12:12:12pm
01/01/1970-12:01:01am

Hint

注意中午和凌晨時間的特殊表示

Source

/*    
*Copyright (c)2015,煙臺大學計算機與控制工程學院    
*All rights reserved.      
*作    者:單昕昕    
*完成日期:2015年8月16日    
*版 本 號:v1.0        
*/
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
using namespace std;
int main()
{
    int t,year,month,day,hour,minute,second,h;
    char c1,c2,c3,c4,c5;
    cin>>t;
    while(t--)
    {
        cin>>year>>c1>>month>>c2>>day>>c3>>hour>>c4>>minute>>c5>>second;
        if(hour==0)
            h=12;
        else
            h=(hour>12?hour-12:hour);
        printf("%02d%c%02d%c%d%c%02d%c%02d%c%02d",month,c1,day,c2,year,c3,h,c4,minute,c5,second);
        cout<<(hour>=12?"pm":"am")<<endl;
    }
    return 0;
}


相關文章