<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[C/C++时间函数的使用]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sat, 28 Aug 2010 07:57:40 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	asctime（将时间和日期以字符串格式表示）<br/><br/>相关函数<br/> time，ctime，gmtime，localtime <br/> <br/>表头文件<br/> #include&lt;time.h&gt; <br/> <br/>定义函数<br/> char * asctime(const struct tm * timeptr); <br/> <br/>函数说明<br/> asctime()将参数timeptr所指的tm结构中的信息转换成真实世界所使用的时间日期表示方法，然后将结果以字符串形态返回。此函数已经由时区转换成当地时间，字符串格式为:“Wed Jun 30 21:49:08 1993&#92;n” <br/> <br/>返回值<br/> 若再调用相关的时间日期函数，此字符串可能会被破坏。此函数与ctime不同处在于传入的参数是不同的结构。 <br/> <br/>附加说明<br/> 返回一字符串表示目前当地的时间日期。 <br/> <br/>范例<br/> #include &lt;time.h&gt; <br/>main()<br/>&#123;<br/>time_t timep;<br/>time (&amp;timep);<br/>printf(“%s”,asctime(gmtime(&amp;timep)));<br/>&#125;<br/> <br/>执行<br/> Sat Oct 28 02:10:06 2000 <br/> <br/>　 <br/><br/><br/> <br/>ctime（将时间和日期以字符串格式表示）<br/><br/>相关函数<br/> time，asctime，gmtime，localtime <br/> <br/>表头文件<br/> #include&lt;time.h&gt; <br/> <br/>定义函数<br/> char *ctime(const time_t *timep); <br/> <br/>函数说明<br/> ctime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法，然后将结果以字符串形态返回。此函数已经由时区转换成当地时间，字符串格式为“Wed Jun 30 21 :49 :08 1993&#92;n”。若再调用相关的时间日期函数，此字符串可能会被破坏。 <br/> <br/>返回值<br/> 返回一字符串表示目前当地的时间日期。 <br/> <br/>范例<br/> #include&lt;time.h&gt; <br/>main()<br/>&#123;<br/>time_t timep;<br/>time (&amp;timep);<br/>printf(“%s”,ctime(&amp;timep));<br/>&#125;<br/> <br/>执行<br/> Sat Oct 28 10 : 12 : 05 2000 <br/> <br/>　 <br/><br/><br/> <br/>gettimeofday（取得目前的时间）<br/><br/>相关函数<br/> time，ctime，ftime，settimeofday <br/> <br/>表头文件<br/> #include &lt;sys/time.h&gt; <br/>#include &lt;unistd.h&gt;<br/> <br/>定义函数<br/> int gettimeofday ( struct timeval * tv , struct timezone * tz ) <br/> <br/>函数说明<br/> gettimeofday()会把目前的时间有tv所指的结构返回，当地时区的信息则放到tz所指的结构中。 <br/>timeval结构定义为:<br/>struct timeval&#123;<br/>long tv_sec; /*秒*/<br/>long tv_usec; /*微秒*/<br/>&#125;;<br/>timezone 结构定义为:<br/>struct timezone&#123;<br/>int tz_minuteswest; /*和Greenwich 时间差了多少分钟*/<br/>int tz_dsttime; /*日光节约时间的状态*/<br/>&#125;;<br/>上述两个结构都定义在/usr/include/sys/time.h。tz_dsttime 所代表的状态如下<br/>DST_NONE /*不使用*/<br/>DST_USA /*美国*/<br/>DST_AUST /*澳洲*/<br/>DST_WET /*西欧*/<br/>DST_MET /*中欧*/<br/>DST_EET /*东欧*/<br/>DST_CAN /*加拿大*/<br/>DST_GB /*大不列颠*/<br/>DST_RUM /*罗马尼亚*/<br/>DST_TUR /*土耳其*/<br/>DST_AUSTALT /*澳洲（1986年以后）*/<br/> <br/>返回值<br/> 成功则返回0，失败返回－1，错误代码存于errno。附加说明EFAULT指针tv和tz所指的内存空间超出存取权限。 <br/> <br/>范例<br/> #include&lt;sys/time.h&gt; <br/>#include&lt;unistd.h&gt;<br/>main()&#123;<br/>struct timeval tv;<br/>struct timezone tz;<br/>gettimeofday (&amp;tv , &amp;tz);<br/>printf(“tv_sec; %d&#92;n”, tv,.tv_sec) ;<br/>printf(“tv_usec; %d&#92;n”,tv.tv_usec);<br/>printf(“tz_minuteswest; %d&#92;n”, tz.tz_minuteswest);<br/>printf(“tz_dsttime, %d&#92;n”,tz.tz_dsttime);<br/>&#125;<br/> <br/>执行<br/> tv_sec: 974857339 <br/>tv_usec:136996<br/>tz_minuteswest:-540<br/>tz_dsttime:0<br/> <br/>　 <br/><br/><br/> <br/>gmtime（取得目前时间和日期）<br/><br/>相关函数<br/> time,asctime,ctime,localtime <br/> <br/>表头文件<br/> #include&lt;time.h&gt; <br/> <br/>定义函数<br/> struct tm*gmtime(const time_t*timep); <br/> <br/>函数说明<br/> gmtime()将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法，然后将结果由结构tm返回。 <br/>结构tm的定义为<br/>struct tm<br/>&#123;<br/>int tm_sec;<br/>int tm_min;<br/>int tm_hour;<br/>int tm_mday;<br/>int tm_mon;<br/>int tm_year;<br/>int tm_wday;<br/>int tm_yday;<br/>int tm_isdst;<br/>&#125;;<br/>int tm_sec 代表目前秒数，正常范围为0-59，但允许至61秒<br/>int tm_min 代表目前分数，范围0-59<br/>int tm_hour 从午夜算起的时数，范围为0-23<br/>int tm_mday 目前月份的日数，范围01-31<br/>int tm_mon 代表目前月份，从一月算起，范围从0-11<br/>int tm_year 从1900 年算起至今的年数<br/>int tm_wday 一星期的日数，从星期一算起，范围为0-6<br/>int tm_yday 从今年1月1日算起至今的天数，范围为0-365<br/>int tm_isdst 日光节约时间的旗标<br/>此函数返回的时间日期未经时区转换，而是UTC时间。<br/> <br/>返回值<br/> 返回结构tm代表目前UTC 时间 <br/> <br/>范例<br/> #include &lt;time.h&gt; <br/>main()&#123;<br/>char *wday[]=&#123;&quot;Sun&quot;,&quot;Mon&quot;,&quot;Tue&quot;,&quot;Wed&quot;,&quot;Thu&quot;,&quot;Fri&quot;,&quot;Sat&quot;&#125;;<br/>time_t timep;<br/>struct tm *p;<br/>time(&amp;timep);<br/>p=gmtime(&amp;timep);<br/>printf(“%d%d%d”,(1900+p-&gt;tm_year), (1+p-&gt;tm_mon),p-&gt;tm_mday);<br/>printf(“%s%d;%d;%d&#92;n”, wday[p-&gt;tm_wday], p-&gt;tm_hour, p-&gt;tm_min, p-&gt;tm_sec);<br/>&#125;<br/> <br/>执行<br/> 2000/10/28 Sat 8:15:38 <br/> <br/>　 <br/><br/><br/> <br/>localtime（取得当地目前时间和日期）<br/><br/>相关函数<br/> time, asctime, ctime, gmtime <br/> <br/>表头文件<br/> #include&lt;time.h&gt; <br/> <br/>定义函数<br/> struct tm *localtime(const time_t * timep); <br/> <br/>函数说明<br/> localtime()将参数timep所指的time_t结构中的信息转换成真实世界所使用的时间日期表示方法，然后将结果由结构tm返回。结构tm的定义请参考gmtime()。此函数返回的时间日期已经转换成当地时区。 <br/> <br/>返回值<br/> 返回结构tm代表目前的当地时间。 <br/> <br/>范例<br/> #include&lt;time.h&gt; <br/>main()&#123;<br/>char *wday[]=&#123;“Sun”,”Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”&#125;;<br/>time_t timep;<br/>struct tm *p;<br/>time(&amp;timep);<br/>p=localtime(&amp;timep); /*取得当地时间*/<br/>printf (“%d%d%d ”, (1900+p-&gt;tm_year),( l+p-&gt;tm_mon), p-&gt;tm_mday);<br/>printf(“%s%d:%d:%d&#92;n”, wday[p-&gt;tm_wday],p-&gt;tm_hour, p-&gt;tm_min, p-&gt;tm_sec);<br/>&#125;<br/> <br/>执行<br/> 2000/10/28 Sat 11:12:22 <br/> <br/>　 <br/><br/><br/> <br/>mktime（将时间结构数据转换成经过的秒数）<br/><br/>相关函数<br/> time，asctime，gmtime，localtime <br/> <br/>表头文件<br/> #include&lt;time.h&gt; <br/> <br/>定义函数<br/> time_t mktime(strcut tm * timeptr); <br/> <br/>函数说明<br/> mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。 <br/> <br/>返回值<br/> 返回经过的秒数。 <br/> <br/>范例<br/> /* 用time()取得时间（秒数），利用localtime() <br/>转换成struct tm 再利用mktine（）将struct tm转换成原来的秒数*/<br/>#include&lt;time.h&gt;<br/>main()<br/>&#123;<br/>time_t timep;<br/>strcut tm *p;<br/>time(&amp;timep);<br/>printf(“time() : %d &#92;n”,timep);<br/>p=localtime(&amp;timep);<br/>timep = mktime(p);<br/>printf(“time()-&gt;localtime()-&gt;mktime():%d&#92;n”,timep);<br/>&#125;<br/> <br/>执行<br/> time():974943297 <br/>time()-&gt;localtime()-&gt;mktime():974943297<br/> <br/>　 <br/><br/><br/> <br/>settimeofday（设置目前时间）<br/><br/>相关函数<br/> time，ctime，ftime，gettimeofday <br/> <br/>表头文件<br/> #include&lt;sys/time.h&gt; <br/>#include&lt;unistd.h&gt;<br/> <br/>定义函数<br/> int settimeofday ( const struct timeval *tv,const struct timezone *tz); <br/> <br/>函数说明<br/> settimeofday()会把目前时间设成由tv所指的结构信息，当地时区信息则设成tz所指的结构。详细的说明请参考gettimeofday()。注意，只有root权限才能使用此函数修改时间。 <br/> <br/>返回值<br/> 成功则返回0，失败返回－1，错误代码存于errno。 <br/> <br/>错误代码<br/> EPERM 并非由root权限调用settimeofday（），权限不够。 <br/>EINVAL 时区或某个数据是不正确的，无法正确设置时间。<br/> <br/>　 <br/><br/><br/> <br/>time（取得目前的时间）<br/><br/>相关函数<br/> ctime，ftime，gettimeofday <br/> <br/>表头文件<br/> #include&lt;time.h&gt; <br/> <br/>定义函数<br/> time_t time(time_t *t); <br/> <br/>函数说明<br/> 此函数会返回从公元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数。如果t 并非空指针的话，此函数也会将返回值存到t指针所指的内存。 <br/> <br/>返回值<br/> 成功则返回秒数，失败则返回((time_t)-1)值，错误原因存于errno中。 <br/> <br/>范例<br/> #include&lt;time.h&gt; <br/>mian()<br/>&#123;<br/>int seconds= time((time_t*)NULL);<br/>printf(“%d&#92;n”,seconds);<br/>&#125;<br/> <br/>执行<br/> 9.73E+08 <br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] C/C++时间函数的使用]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>