Problem E: 時間:24小時制轉12小時制

Problem E: 時間:24小時制轉12小時制

Time Limit: 1 Sec  Memory Limit: 16 MB
Submit: 2473  Solved: 648
[Submit][Status][Web Board]

Description

編寫一個程序,把輸入的24小時制的時間,轉換12小時制的格式輸出。

12小時制沒有0點時段,是以數字12、1、2、3、4、5、6、7、8、9、10、11依次序表示每個時段的。
正午是“12:00 p.m.”,也就是24小時制的中午12點;
24小時制的12:00~12:59,是12小時制的12:00 p.m.~12:59 p.m.;
24小時制的13:00~23:59是十二小時制的1:00 p.m.~11:59 p.m.。
午夜是“12:00 a.m.”,也就是24小時制的0點,或者24點;
24小時制的00:00~00:59,是12小時制的12:00 a.m.~12:59 a.m.;
24小時制的1:00~11:59是十二小時制的1:00 a.m.~11:59 a.m.。

Input

輸入爲一行。輸入爲24小時制的小時和分,都佔滿2個字符的位置,用“:”分隔。範圍是00:00~23:59。

Output

輸出爲12小時制的小時和分,都佔滿2個字符的位置,用“:”分隔,一個空格後跟“a.m.”(午前)或“p.m.”(午後)。

Sample Input

21:05

Sample Output

09:05 p.m.



#include <stdio.h>
#include <stdlib.h>

int main()
{
    int xs,fz,swxw=1;
    scanf("%d:%d",&xs,&fz);
    if(xs == 0)
        {xs = 12;swxw = 1;}
    else if(xs > 12)
        {xs -= 12;swxw = 0;}
    else if(xs < 12)
        swxw = 1;
    else if(xs == 12)
        swxw = 0;

    if(xs < 10)
        printf("0%d:",xs);
    else
        printf("%d:",xs);
    if(fz < 10)
        printf("0%d ",fz);
    else
        printf("%d ",fz);
    if(swxw == 0)
        printf("p.m.\n");
    else
        printf("a.m.\n");
    return 0;
}


發佈了39 篇原創文章 · 獲贊 11 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章