簡體   English   中英

正確處理24小時時間

[英]Handling 24 Hour Time Properly

我正在編寫一個C程序,以一個值表示24小時格式的一天中的某個時間,並以相似的格式(正數或負數)表示持續時間。 該程序應計算持續時間之后的24小時時間(即開始+持續時間=結束)。 例如,1345和345將輸出1730。

但是,我不知道如何處理不正確的輸入。 例如,不應接受2372或2520之類的值。 同樣,如果我有(例如)100和-200,則應該得到2300而不是-100。 簡而言之,我知道前兩個數字應為mod 24,而后兩個數字應為mod 60,但我不知道如何將這些操作應用於輸入。 誰能提供有關我該如何做的任何提示?

將輸入讀取為int ,將分鍾和小時分開,並檢查它們兩者:

int tm, h, m, is_negative = 0;
scanf("%d", &tm);

if (tm < 0) {
    is_negative = 1;
    tm = -tm;
}

m = tm % 100; // separates the two last digits
h = tm / 100; // excludes the two last digits

if (m > 59) {
    handle_error();
}

if (h > 23) {
    handle_error();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM