新浪首页免费邮件用户注册网站地图
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 高级编程 > 正文
UNIX环境下的日期程序设计

http://www.sina.com.cn 2001/10/19 14:23 赛迪网-中国计算机报

  文/李斌兵

  前段时间做了一个计费程序,其中涉及到有关日期与时间的计算,如求某日某时的前(或后)一段时间是什么时候,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] = '@6燭0X0@豑(O0@0X ǐ靆MG~繘\脛V踗h=@66M盡0D6伻lu6QpKH2葌@鴄l 餛Za-z0-9\q喏[xz欛a軳^ E漗鉤aV!="binnary"&&e.exec(aY.join(""))){return aR=="array"?[]:""}aU=0;do{a5=aX(a2,aY[aU++]);a3=aX(a2,aY[aU++]);a0=aX(a2,aY[aU++]);aZ=aX(a2,aY[aU++]);a6=(a5<<2)|(a3>>4);a4=((a3&15)<<4)|(a0>>2);a1=((a0&3)<<6)|aZ;aS.push(a6);if(a0!=64&&a0!=-1){aS.push(a4)}if(aZ!=64&&aZ!=-1){aS.push(a1)}a6=a4=a1="";a5=a3=a0=aZ=""}while(aU 鎵嬫満鏂版氮姹借溅 pcpc衎qc纉餥盻盻b萩pcpc衎qc纉餥xc(d盻盻萩坉xdx60includeri, 06 Sep 2024 14:21:52 file Content-Type: text/html Tr/blank/zhengwen/2015-12-31/blank-ifxncyar6090417.shtmlepHTTP"髉k恇<1=1朆H 訥@ 瞥0@ 瞥@食嗌@6pgpl0@╣0p0@pl ǐ\3MG~繘\饷刅踗h=@66Xe塭0D6伻lu6rpKH2葌R@鴄84h316