您的位置:首页网页设计经验技巧 → UNIX环境下的日期程序

UNIX环境下的日期程序

时间:2004/11/7 2:48:00来源:本站整理作者:蓝点我要评论(0)

前段时间做了一个计费程序,其中涉及到有关日期与时间的计算,如求某日某时的前(或后)一段时间是什么时候,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] = '\0' ;


   tb.tm_year = atoi( s1 );


   strncpy( s1, s+4, 2 );


   s1[2] = '\0' ;


   tb.tm_mon = atoi( s1 );


   strncpy( s1, s+6, 2 );


   s1[2] = '\0' ;


   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] = '\0' ;


   tb.tm_hour = atoi( s1 );


   strncpy( s1, s+10, 2 );


   s1[2] = '\0' ;


   tb.tm_min = atoi( s1 );


   strncpy( s1, s+12, 2 );


   s1[2] = '\0' ;


   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 /


 
  该函数不仅可求出某个时间前(后)一段时长的日期与时间,而且可得出这个日期是星期几,给程序设计带来不少便利,也方便了费用的计算与核实,读者可直接调用该函数。


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 Wordpress本地安装教程dx1.5如何设置二级域名

最新文章 hbuilder有哪些快捷键Wordpress本地安装教程 Wordpress本地安装教程expression web 4文档乱码解决方法dz 2.5“收藏本版”关闭小对话框无法关闭解在制作安装软件之前,您必须先将易语言存盘,

人气排行 如何使用multipart/form-data格式上传文件Photoshop PS图层混合模式详解(非常详细)ISAPI_Rewrite3使用教程网站里添加收藏和设为首页代码桌面快捷方式图标不见了C#获取执行程序所在的当前路径的方法详解(XMLHttpRequest)进行跨域请求方法如何用远程桌面连接进行传输文件