前段时间做了一个计费程序,其中涉及到有关日期与时间的计算,如求某日某时的前(或后)一段时间是什么时候,UNIX C系统本身并未提供此类函数,笔者经摸索,设计了一个求时间的函数,现介绍给大家。
功能介绍与参数说明
该函数的主要功能是根据给定的日期时间及时长求出此前或后(bill_long为负)的日期时间及其星期。
参数说明如下:
s:为给定的日期时间,如2001年6月2日18点30分04秒为“20010602183004”;
bill_long:给定的时间长度,单位为秒;
d_str:求出的日期,如2001年6月2日为“20010602”;
t_str:求出的时间,如18点28分06秒为“182806”;
函数返回值为星期,如星期日为0,星期一至六分别对应1~6。
实现代码
该函数的具体实现代码如下:
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] = '