基本時間函式:
1.名字:time_t time(time_t *t)
說明:返回格林尼治時間從公元 1970 年1 月1 日的utc 時間從0 時0 分0 秒算起到現在所經過的秒數,函式為value - result型
引數:time_t為長整型,即long型,所以最大能儲存到2023年1月18日19時14分07秒
時間常用用法:
1.1獲取當前時間戳(精確到秒)
示例:
int ncurtime = time(null);
1.2獲取從2023年1月1日算起至今經過的天數(從1開始,以北京時間的日期為天數標準,達到0時0分0秒即為新的一天)
示例:
// 一天的總秒數
int daysecond = 24 * 60 * 60;
// 現在的時間戳,精確到秒
int curtime = time(null);
// 得到天數,為什麼要減去16個小時呢,請參照上面,北京的0時是格林尼治時間的16時
// 所以只有減去了16小時的秒數,才是格林尼治時間的一天的0時0分0秒,當然此種計算只適用於以北京時間為標準的
int curday = (curtime - 16 * 60 * 60) / daysecond;
1.3有了以前的時間戳(精確到秒),計算現在是時間戳計算以來的第幾天(從1開始,處於同一天則為1,以北京時間的日期為天數標準,達到0時0分0秒即為新的一天)
示例:
// 一天的總秒數
int daysecond = 24 * 60 * 60;
// 上次的時間戳,暫取北京時間2023年3月1日0時0分0秒
int nlasttime = 1488297600;
// 上次時間戳所處的天數,減16小時秒數的原因同上
int nlastday = (nlasttime - 16* 60*60) / daysecond ;
// 當前時間戳所處的天數,減16小時秒數的原因同上
int ncurday = (time(null) - 16 * 60 * 60)/ daysecond;
// 間隔,加1表當天為第一天
int nintervalday= ncurday - nlastday + 1;
2. 時間結構體 tm 和 time_t的轉換
結構體tm的定義:
struct tm
;
time_t的定義:即32位整型或64位整型
#ifndef _time_t_defined
#ifdef _use_32bit_time_t
typedef __time32_t time_t; /* time value */
#else
typedef __time64_t time_t; /* time value */
#endif
2.1 tm轉換為time_t
time_t mktime(struct tm * _tm);
示例**:
tm* tm1 = new tm();
tm1->tm_year = 118; // 2023年
tm1->tm_mon = 3; // 4月
tm1->tm_mday = 14; // 14日
tm1->tm_hour = 10; // 10點
tm1->tm_min = 58; // 58分
tm1->tm_sec = 9; // 9秒
2.2 time_t轉換為tm
tm * localtime(const time_t * _time);
示例**:
// 獲取當前時間
time_t ti = time(null);
//轉換成tm型別的結構體;
PHP時間相關常用函式用法示例
設定時區 date default timezone set asia shanghai 獲取時區 echo date default timezone get 結果 utc echo 新增時間 date date create 2013 03 15 建立乙個datetime 物件 date add...
C C 相關題解
1.求下面函式的返回值 微軟 按 ctrl c 複製 按 ctrl c 複製 假定x 9999。答案 8 思路 將x轉化為2進製,看含有的1的個數。2.什麼是 引用 申明和使用 引用 要注意哪些問題?答 引用就是某個目標變數的 別名 alias 對應用的操作與對變數直接操作效果完全相同。申明乙個引用...
c c 獲取時間
方法一 time t time time t timer 可以獲取當前的系統時間,此函式返回的是從公元1970年1月1日0時0分0秒算起到現在所經過的秒數 如果引數不是空指標的話,它也會把返回值設定到入參指標所指物件中 在標頭檔案中,有 typedef long time t,所以time t其實就...