<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
#ifndef STUDY_TIME_UTIL_H #define STUDY_TIME_UTIL_H long get_current_timestamp(); long get_time_difference(long start_time,long end_time); char* get_time_by_timestamp(long timestamp); char* format_time(long timestamp,char* format); int standard_to_stamp(char *str_time); int get_current_year(); int get_current_month(); int get_current_day(); int get_current_hour(); int get_current_minute(); int get_current_second(); int get_current_week(); long get_time_difference_second(long start_time,long end_time); long get_time_difference_minute(long start_time,long end_time); long get_time_difference_hour(long start_time,long end_time); long get_time_difference_day(long start_time,long end_time); long get_time_difference_month(long start_time,long end_time); long get_time_difference_year(long start_time,long end_time); long add_time(long timestamp,int seconds); long sub_time(long timestamp,int seconds); long add_week(long timestamp,int week); long add_second(long timestamp,int second); long add_minute(long timestamp,int minute); long add_hour(long timestamp,int hour); long add_day(long timestamp,int day); long add_month(long timestamp,int month); long add_year(long timestamp,int year); int compare_time(long timestamp1,long timestamp2); char* week_to_str(int week); int is_leap_year(int year); char* get_season_by_timestamp(long timestamp); long get_first_day_of_month(); long get_first_day_of_month_by_month(int month); long get_last_day_of_month_by_month(int month); long get_first_day_of_month_by_year(int year); long get_last_day_of_month_by_year(int year); long get_first_day_of_week_by_timestamp(long timestamp); long get_last_day_of_week_by_timestamp(long timestamp); int get_day_of_month(); int get_day_of_year(); int get_day_of_week(); int get_day_of_season(); long get_start_time_of_day(long timestamp); long get_end_time_of_day(long timestamp); #endif //STUDY_TIME_UTIL_H
#include "time_util.h" #include<time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> //獲取當前時間戳 long get_current_timestamp(){ time_t timep; time (&timep); return timep; } //計算兩個時間戳的時間差(返回毫秒) long get_time_difference(long start_time,long end_time){ return end_time-start_time; } //計算兩個時間戳的時間差(返回秒) long get_time_difference_second(long start_time,long end_time){ return (end_time-start_time)/1000; } //計算兩個時間戳的時間差(返回分鐘) long get_time_difference_minute(long start_time,long end_time){ return (end_time-start_time)/60; } //計算兩個時間戳的時間差(返回小時) long get_time_difference_hour(long start_time,long end_time){ return (end_time-start_time)/3600; } //計算兩個時間戳的時間差(返回天) long get_time_difference_day(long start_time,long end_time){ return (end_time-start_time)/86400; } //計算兩個時間戳的時間差(返回月) long get_time_difference_month(long start_time,long end_time){ return (end_time-start_time)/2592000; } //計算兩個時間戳的時間差(返回年) long get_time_difference_year(long start_time,long end_time){ return (end_time-start_time)/31104000; } //將時間戳轉換為時間 char* get_time_by_timestamp(long timestamp){ time_t timep = timestamp; char* time_str = ctime(&timep); return time_str; } //時間相加 long add_time(long timestamp,int seconds){ return timestamp+seconds; } //時間相減 long sub_time(long timestamp,int seconds){ return timestamp-seconds; } //時間比較(時間戳) ( timestamp1比timestamp2)(1:大於 0:等於 -1:小於) int compare_time(long timestamp1,long timestamp2){ if(timestamp1>timestamp2){ return 1; }else if(timestamp1<timestamp2){ return -1; }else{ return 0; } } //格式化時間("%Y-%m-%d %H:%M:%S) char* format_time(long timestamp,char* format){ time_t timep = timestamp; localtime(&timep); char *buffer=malloc(100); strftime(buffer, 100, format, localtime(&timep)); return buffer; } //獲取當前時間的年份 int get_current_year(){ time_t timep; time (&timep); return localtime(&timep)->tm_year+1900; } //獲取當前時間的月份 int get_current_month(){ time_t timep; time (&timep); return localtime(&timep)->tm_mon+1; } //獲取當前時間的日 int get_current_day(){ time_t timep; time (&timep); return localtime(&timep)->tm_mday; } //獲取當前時間的小時 int get_current_hour(){ time_t timep; time (&timep); return localtime(&timep)->tm_hour; } //獲取當前時間的分鐘 int get_current_minute(){ time_t timep; time (&timep); return localtime(&timep)->tm_min; } //獲取當前時間的秒 int get_current_second(){ time_t timep; time (&timep); return localtime(&timep)->tm_sec; } //獲取當前時間的星期 int get_current_week(){ time_t timep; time (&timep); return localtime(&timep)->tm_wday; } //星期轉換 char* week_to_str(int week){ switch (week){ case 0: return "星期日"; case 1: return "星期一"; case 2: return "星期二"; case 3: return "星期三"; case 4: return "星期四"; case 5: return "星期五"; case 6: return "星期六"; default: return "未知"; } } //世界時間轉北京時間(需要+8小時) long utc_to_cst(long timestamp){ return timestamp+28800; } //將標準時間(2022-09-12 13:46:14或者2022/09/12 13:46:14)轉換為時間戳 int standard_to_stamp(char *str_time){ struct tm stm; int iY,iM,iD,iH,iMin,iS; memset(&stm,0,sizeof(stm)); iY = atoi(str_time); iM = atoi(str_time+5); iD = atoi(str_time+8); iH = atoi(str_time+11); iMin = atoi(str_time+14); iS = atoi(str_time+17); stm.tm_year=iY-1900; stm.tm_mon=iM-1; stm.tm_mday=iD; stm.tm_hour=iH; stm.tm_min=iMin; stm.tm_sec=iS; return (int)mktime(&stm); } //判斷平年和閏年(1:平年 0:閏年) 閏年2月29天 平年2月28天 閏年能被4整除但不能被100整除的年份為閏年。能被400整除的為閏年 int is_leap_year(int year){ if(year%4==0&&year%100!=0||year%400==0){ return 1; }else{ return 0; } } //通過時間戳獲取季節 char* get_season_by_timestamp(long timestamp){ int month = get_current_month(); if(month>=3&&month<=5){ return "春季"; }else if(month>=6&&month<=8){ return "夏季"; }else if(month>=9&&month<=11){ return "秋季"; }else{ return "冬季"; } } //獲取本月第一天的日期時間戳 long get_first_day_of_month(){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); p->tm_mday=1; p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定月份的第一天的日期時間戳 long get_first_day_of_month_by_month(int month){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); p->tm_mon=month-1; p->tm_mday=1; p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定月份最後一天日期時間戳 long get_last_day_of_month_by_month(int month){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); p->tm_mon=month; p->tm_mday=0; p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定年份的第一天的日期時間戳 long get_first_day_of_month_by_year(int year){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); p->tm_year=year-1900; p->tm_mon=0; p->tm_mday=1; p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定年份最後一天日期時間戳 long get_last_day_of_month_by_year(int year){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); p->tm_year=year-1900; p->tm_mon=11; p->tm_mday=31; p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定日期當週第一天的日期時間戳 long get_first_day_of_week_by_timestamp(long timestamp){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_mday=p->tm_mday-p->tm_wday; p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定日期當週最後一天的日期時間戳 long get_last_day_of_week_by_timestamp(long timestamp){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_mday=p->tm_mday+(6-p->tm_wday); p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取今天是本月的第幾天 int get_day_of_month(){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); return p->tm_mday; } //獲取今天是本年的第幾天 int get_day_of_year(){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); return p->tm_yday; } //獲取今天是本週的第幾天 int get_day_of_week(){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); return p->tm_wday; } //獲取今天是本季度的第幾天 int get_day_of_season(){ time_t timep; time (&timep); struct tm *p; p=localtime(&timep); int month = p->tm_mon; int day = p->tm_mday; if(month>=0&&month<=2){ return day; }else if(month>=3&&month<=5){ return day+31; }else if(month>=6&&month<=8){ return day+31+30; }else{ return day+31+30+31; } } //獲取指定時間的開始時間的日期時間戳 (也就是指定時間的00:00:00) long get_start_time_of_day(long timestamp){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_hour=0; p->tm_min=0; p->tm_sec=0; return mktime(p); } //獲取指定時間的結束時間的日期時間戳 (也就是指定時間的23:59:59) long get_end_time_of_day(long timestamp){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_hour=23; p->tm_min=59; p->tm_sec=59; return mktime(p); } //新增指定天數 long add_day(long timestamp,int day){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_mday=p->tm_mday+day; return mktime(p); } //新增指定月數 long add_month(long timestamp,int month){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_mon=p->tm_mon+month; return mktime(p); } //新增指定年數 long add_year(long timestamp,int year){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_year=p->tm_year+year; return mktime(p); } //新增指定小時數 long add_hour(long timestamp,int hour){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_hour=p->tm_hour+hour; return mktime(p); } //新增指定分鐘數 long add_minute(long timestamp,int minute){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_min=p->tm_min+minute; return mktime(p); } //新增指定秒數 long add_second(long timestamp,int second){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_sec=p->tm_sec+second; return mktime(p); } //新增指定週數 long add_week(long timestamp,int week){ time_t timep; timep = timestamp; struct tm *p; p=localtime(&timep); p->tm_mday=p->tm_mday+week*7; return mktime(p); }
以上就是C語言實現時間處理工具的範例程式碼的詳細內容,更多關於C語言時間處理工具的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45