国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

UNIX環(huán)境下的日期程序

瀏覽:116日期:2024-06-06 16:06:29

前段時間做了一個計費程序,其中涉及到有關日期與時間的計算,如求某日某時的前(或后)一段時間是什么時候,UNIX C系統(tǒng)本身并未提供此類函數(shù),筆者經摸索,設計了一個求時間的函數(shù),現(xiàn)介紹給大家。

功能介紹與參數(shù)說明; 該函數(shù)的主要功能是根據(jù)給定的日期時間及時長求出此前或后(bill_long為負)的日期時間及其星期。;

參數(shù)說明如下:;

s:為給定的日期時間,如2001年6月2日18點30分04秒為“20010602183004”;

bill_long:給定的時間長度,單位為秒;

d_str:求出的日期,如2001年6月2日為“20010602”;

t_str:求出的時間,如18點28分06秒為“182806”;

函數(shù)返回值為星期,如星期日為0,星期一至六分別對應1~6。

實現(xiàn)代碼 該函數(shù)的具體實現(xiàn)代碼如下:

int GetDateTime( char s,long int bill_long,chard_str, char t_str) {

time_t timer,tim ;

struct tm tb, tb1 ;

int year_off = 1900 ;

int mon_off = 1 ;

char s1[20] ;

if ( strlen( s )!=14 )

return -1;

strncpy( s1, s, 4 );

s1[4] = '' ;

tb.tm_year = atoi( s1 );

strncpy( s1, s+4, 2 );

s1[2] = '' ;

tb.tm_mon = atoi( s1 );

strncpy( s1, s+6, 2 );

s1[2] = '' ;

tb.tm_mday = atoi( s1 );

if ( tb.tm_year==0 || tb.tm_mon==0 ||tb.tm_mday==0 )

return -1;

strncpy( s1, s+8, 2 );

s1[2] = '' ;

tb.tm_hour = atoi( s1 );

strncpy( s1, s+10, 2 );

s1[2] = '' ;

tb.tm_min = atoi( s1 );

strncpy( s1, s+12, 2 );

s1[2] = '' ;

tb.tm_sec = atoi( s1 );

tb.tm_year -= year_off ;

tb.tm_mon -= mon_off ;

tb.tm_isdst = 0 ;

tim=mktime( &tb ) ;

tim=tim-bill_long;

tb1=localtime(&tim);

sprintf(d_str, '%#04d%#02d%#02d',1900+tb1->tm_year,tb1->tm_mon+1,tb1->tm_mday);

sprintf(t_str, '%#02d%#02d%#02d',tb1->tm_hour, tb1->tm_min,tb1->tm_sec);

return (tb1->tm_wday);

} / end of GetDateTime /

該函數(shù)不僅可求出某個時間前(后)一段時長的日期與時間,而且可得出這個日期是星期幾,給程序設計帶來不少便利,也方便了費用的計算與核實,讀者可直接調用該函數(shù)。

標簽: Unix系統(tǒng)
相關文章:
主站蜘蛛池模板: 镇坪县| 宜阳县| 高淳县| 揭阳市| 涡阳县| 乡宁县| 格尔木市| 三门峡市| 青神县| 星子县| 西充县| 星子县| 柳河县| 开鲁县| 宁波市| 南安市| 司法| 比如县| 洪湖市| 乳山市| 桂阳县| 东方市| 敦化市| 南和县| 鹿邑县| 西丰县| 黔西县| 赤城县| 承德县| 三门峡市| 大邑县| 安康市| 五家渠市| 扎兰屯市| 西林县| 固始县| 特克斯县| 开封市| 高青县| 东乌珠穆沁旗| 垫江县|