网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > 经验技巧
本月文章推荐
.正在运行的程序 请告诉我你的来历.
.小心!这些系统服务可能不老实.
.为何要多次重启才能开机?.
.C盘空间释放27招! 不用Vista就用.
.系统DIY 制作NTFS的备份恢复启动.
.Windows运行命令的七种暗器.
.Windows关机技巧谈.
.任务管理器强制删除正在使用的文.
.小心设置启动项 保护Windows系统.
.通过Windows Update查找适用的驱.
.Windows系统中忘记密码的9个修复.
.利用Ghost软件快速安装和恢复系统.
.方便浏览:合并Windows中的多个T.
.资深网管教你彻底揪出Windows启动.
.Windows系统组策略应用全攻略(中.
.Windows系统组策略应用全攻略(上.
.误删文件也能恢复 Windows文件恢.
.认识Windows设备管理器中的问题符.
.快速重装Windows操作系统的众多要.
.隨手可得的技巧 shift键十大密招.

UNIX环境下的日期程序

发表日期:2004-1-31


前段时间做了一个计费程序,其中涉及到有关日期与时间的计算,如求某日某时的前(或后)一段时间是什么时候,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 里的备用鼠标 人气:10325
下一篇:Windows安装备忘录 人气:11205
浏览全部的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐