簡體   English   中英

如何在c中找到兩次之間的差異?

[英]How to find the difference between two times in c?

我的第一次是12:10:20 PM,第二次是7:10:20同一天我怎么能找到他們的差異?

我的想法是將所有時間轉換為秒,並找到差異再次轉換為時間

Approch還不錯嗎?

你想要difftime功能。

編輯

如果你沒有difftime可用,我會建議你從你difftime任何格式轉換到epoch的秒數,進行計算並轉換回你需要的任何格式。 以下功能組可以幫助您完成所有這些轉換:

asctime,ctime,gmtime,localtime,mktime,asctime_r,ctime_r,gmtime_r,localtime_r - 轉換故障時間或ASCII的日期和時間

timegm,timelocal - 用於gmtime和localtime的反轉(可能並非在所有系統上都可用)

不一定是最好的方法,但如果你想使用系統上的可用內容,difftime()和mktime()可以提供幫助 -

#include <time.h>

tm Time1 = { 0 };  // Make sure everything is initialized to start with.
/* 12:10:20 */
Time1.tm_hour = 12;
Time1.tm_min = 10;
Time1.tm_sec = 20;

/* Give the function a sane date to work with (01/01/2000, here). */
Time1.tm_mday = 1;
Time1.tm_mon = 0;
Time1.tm_year = 100;

tm Time2 = Time1;  // Base Time2 on Time1, to get the same date...
/* 07:10:20 */
Time2.tm_hour = 7;
Time2.tm_min = 10;
Time2.tm_sec = 20;

/* Convert to time_t. */
time_t TimeT1 = mktime( &Time1 );
time_t TimeT2 = mktime( &Time2 );

/* Use difftime() to find the difference, in seconds. */
double Diff = difftime( TimeT1, TimeT2 );

你的方法聽起來很明智。

再進一步,您可以轉換為通用時間格式,例如Unix時間 ,然后采取差異。

暫無
暫無

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

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