時間換算

H3art發表於2020-11-20

題目內容:

UTC是世界協調時,BJT是北京時間,UTC時間相當於BJT減去8。現在,你的程式要讀入一個整數,表示BJT的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小於10,則沒有千位部分;如果小時是0,則沒有百位部分;如果小時不是0而分小於10分,需要保留十位上的0;如果小時是0而分小於10分的,則不需要保留十位上的0。如1124表示11點24分,而905表示9點5分,36表示0點36分,7表示0點7分。

有效的輸入範圍是0到2359,即你的程式不可能從測試伺服器讀到0到2359以外的輸入資料。

你的程式要輸出這個時間對應的UTC時間,輸出的格式和輸入的相同,即輸出一個整數,表示UTC的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小於10,則沒有千位部分;如果小時是0,則沒有百位部分;如果小時不是0而分小於10分,需要保留十位上的0;如果小時是0而分小於10分的,則不需要保留十位上的0。

提醒:要小心跨日的換算。

輸入格式:

一個整數,表示BJT的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小於10,則沒有千位部分;如果小時是0,則沒有百位部分;如果小時不是0而分小於10分,需要保留十位上的0;如果小時是0而分小於10分的,則不需要保留十位上的0。

輸出格式:

一個整數,表示UTC的時和分。整數的個位和十位表示分,百位和千位表示小時。如果小時小於10,則沒有千位部分;如果小時是0,則沒有百位部分;如果小時不是0而分小於10分,需要保留十位上的0;如果小時是0而分小於10分的,則不需要保留十位上的0。

輸入樣例:

803

輸出樣例:

3

#include <stdio.h>
int main(void)
{
	int a,b; //定義a為輸入的數 b為輸出的數 
	scanf("%d",&a);
	
	if(a>=800) //如果輸入的值是在早上8點到晚上24點之間任一時刻
	b=a-800; //則直接減去8小時(800)即可得出答案 
	
    if(a<800) //反之,則輸入的值是凌晨0點到早上8點之間任一時刻 (需要注意跨日運算) 
	b=(24-8 + a/100)*100 + a%100 ; //借位從24點開始減去8小時(因為要跨日運算) 
     
	printf("%d",b);
	return 0;
} 

在這裡插入圖片描述

相關文章