头文件time.h \x0d\x0a\x0d\x0a@
函数名称: localtime \x0d\x0a函数
原型: struct tm *localtime(const time_t *timer) \x0d\x0a函数功能: 返回一个以tm结构表达的机器
时间信息 \x0d\x0a函数返回: 以tm结构表达的时间,结构tm定义如下: \x0d\x0astruct tm{ \x0d\x0a int tm_sec\x0d\x0a int tm_min\x0d\x0a int tm_hour\x0d\x0a int tm_mday\x0d\x0a int tm_mon\x0d\x0a int tm_year\x0d\x0a int tm_wday\x0d\x0a int tm_yday\x0d\x0a int tm_isdst\x0d\x0a}\x0d\x0a参数说明: timer-使用time()函数获得的机器时间 \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t timer\x0d\x0astruct tm *tblock\x0d\x0atimer=time(NULL)\x0d\x0atblock=localtime(&timer)\x0d\x0aprintf("Local time is: %s",asctime(tblock))\x0d\x0areturn 0\x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: asctime \x0d\x0a函数原型: char* asctime(struct tm * ptr) \x0d\x0a函数功能: 得到机器时间(日期时间转换为ASCII码) \x0d\x0a函数返回: 返回的时间字符串格式为:星期,月,日,小时:分:秒,年 \x0d\x0a参数说明: 结构指针ptr应通过函数localtime()和gmtime()得到 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0astruct tm t\x0d\x0achar str[80]\x0d\x0at.tm_sec=1\x0d\x0at.tm_min=3\x0d\x0at.tm_hour=7\x0d\x0at.tm_mday=22\x0d\x0at.tm_mon=11\x0d\x0at.tm_year=56\x0d\x0at.tm_wday=4\x0d\x0at.tm_yday=0\x0d\x0at.tm_isdst=0\x0d\x0astrcpy(str,asctime(&t))\x0d\x0aprintf("%s",str)\x0d\x0areturn 0\x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: ctime \x0d\x0a函数原型: char *ctime(long time) \x0d\x0a函数功能: 得到日历时间 \x0d\x0a函数返回: 返回字符串格式:星期,月,日,小时:分:秒,年 \x0d\x0a参数说明: time-该参数应由函数time获得 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t t\x0d\x0atime(&t)\x0d\x0aprintf("Today's date and time: %s",ctime(&t))\x0d\x0areturn 0\x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: difftime \x0d\x0a函数原型: double difftime(time_t time2, time_t time1) \x0d\x0a函数功能: 得到两次机器时间差,单位为秒 \x0d\x0a函数返回: 时间差,单位为秒 \x0d\x0a参数说明: time1-机器时间一,time2-机器时间二.该参数应使用time函数获得 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t first, second\x0d\x0aclrscr()\x0d\x0afirst=time(NULL)\x0d\x0adelay(2000)\x0d\x0asecond=time(NULL)\x0d\x0aprintf("The difference is: %f seconds",difftime(second,first))\x0d\x0agetch()\x0d\x0areturn 0\x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: gmtime \x0d\x0a函数原型: struct tm *gmtime(time_t *time) \x0d\x0a函数功能: 得到以结构tm表示的时间信息 \x0d\x0a函数返回: 以结构tm表示的时间信息指针 \x0d\x0a参数说明: time-用函数time()得到的时间信息 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0achar *tzstr="TZ=PST8PDT"\x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t t\x0d\x0astruct tm *gmt, *area\x0d\x0aputenv(tzstr)\x0d\x0atzset()\x0d\x0at=time(NULL)\x0d\x0aarea=localtime(&t)\x0d\x0aprintf("Local time is:%s", asctime(area))\x0d\x0agmt=gmtime(&t)\x0d\x0aprintf("GMT is:%s", asctime(gmt))\x0d\x0areturn 0\x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: time \x0d\x0a函数原型: time_t time(time_t *timer) \x0d\x0a函数功能: 得到机器的日历时间或者设置日历时间 \x0d\x0a函数返回: 机器日历时间 \x0d\x0a参数说明: timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型 \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t t\x0d\x0at=time()\x0d\x0aprintf("The number of seconds since January 1,1970 is %ld",t)\x0d\x0areturn 0\x0d\x0a} \x0d\x0a\x0d\x0a@函数名称: tzset \x0d\x0a函数原型: void tzset(void) \x0d\x0a函数功能: UNIX兼容函数,用于得到时区,在DOS环境下无用途 \x0d\x0a函数返回: \x0d\x0a参数说明: \x0d\x0a所属文件: \x0d\x0a\x0d\x0a#include \x0d\x0a#include \x0d\x0a#include \x0d\x0aint main() \x0d\x0a{ \x0d\x0atime_t td\x0d\x0aputenv("TZ=PST8PDT")\x0d\x0atzset()\x0d\x0atime(&td)\x0d\x0aprintf("Current time=%s",asctime(localtime(&td)))\x0d\x0areturn 0\x0d\x0a}头文件time.h
@函数名称: localtime
函数原型: struct tm *localtime(const time_t *timer)
函数功能: 返回一个以tm结构表达的机器时间信息
函数返回: 以tm结构表达的时间,结构tm定义如下:
struct tm{
int tm_sec
int tm_min
int tm_hour
int tm_mday
int tm_mon
int tm_year
int tm_wday
int tm_yday
int tm_isdst
}
参数说明: timer-使用time()函数获得的机器时间
#include <time.h>
#include <stdio.h>
#include <dos.h>
int main()
{
time_t timer
struct tm *tblock
timer=time(NULL)
tblock=localtime(&timer)
printf("Local time is: %s",asctime(tblock))
return 0
}
@函数名称: asctime
函数原型: char* asctime(struct tm * ptr)
函数功能: 得到机器时间(日期时间转换为ASCII码)
函数返回: 返回的时间字符串格式为:星期,月,日,小时:分:秒,年
参数说明: 结构指针ptr应通过函数localtime()和gmtime()得到
所属文件: <time.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
int main()
{
struct tm t
char str[80]
t.tm_sec=1
t.tm_min=3
t.tm_hour=7
t.tm_mday=22
t.tm_mon=11
t.tm_year=56
t.tm_wday=4
t.tm_yday=0
t.tm_isdst=0
strcpy(str,asctime(&t))
printf("%s",str)
return 0
}
@函数名称: ctime
函数原型: char *ctime(long time)
函数功能: 得到日历时间
函数返回: 返回字符串格式:星期,月,日,小时:分:秒,年
参数说明: time-该参数应由函数time获得
所属文件: <time.h>
#include <stdio.h>
#include <time.h>
int main()
{
time_t t
time(&t)
printf("Today's date and time: %s",ctime(&t))
return 0
}
@函数名称: difftime
函数原型: double difftime(time_t time2, time_t time1)
函数功能: 得到两次机器时间差,单位为秒
函数返回: 时间差,单位为秒
参数说明: time1-机器时间一,time2-机器时间二.该参数应使用time函数获得
所属文件: <time.h>
#include <time.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>
int main()
{
time_t first, second
clrscr()
first=time(NULL)
delay(2000)
second=time(NULL)
printf("The difference is: %f seconds",difftime(second,first))
getch()
return 0
}
@函数名称: gmtime
函数原型: struct tm *gmtime(time_t *time)
函数功能: 得到以结构tm表示的时间信息
函数返回: 以结构tm表示的时间信息指针
参数说明: time-用函数time()得到的时间信息
所属文件: <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <dos.h>
char *tzstr="TZ=PST8PDT"
int main()
{
time_t t
struct tm *gmt, *area
putenv(tzstr)
tzset()
t=time(NULL)
area=localtime(&t)
printf("Local time is:%s", asctime(area))
gmt=gmtime(&t)
printf("GMT is:%s", asctime(gmt))
return 0
}
@函数名称: time
函数原型: time_t time(time_t *timer)
函数功能: 得到机器的日历时间或者设置日历时间
函数返回: 机器日历时间
参数说明: timer=NULL时得到机器日历时间,timer=时间数值时,用于设置日历时间,time_t是一个long类型
所属文件: <time.h>
#include <time.h>
#include <stdio.h>
#include <dos.h>
int main()
{
time_t t
t=time()
printf("The number of seconds since January 1,1970 is %ld",t)
return 0
}
@函数名称: tzset
函数原型: void tzset(void)
函数功能: UNIX兼容函数,用于得到时区,在DOS环境下无用途
函数返回:
参数说明:
所属文件: <time.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
time_t td
putenv("TZ=PST8PDT")
tzset()
time(&td)
printf("Current time=%s",asctime(localtime(&td)))
return 0
}
我们知道在产生随机数的时候,需要一个叫做种子seed的值作为产生随机数算法的初始值。
而c/c++库中的srand就是为这一次的随机数生成设置种子。s代表的就是seed的意思。
time_t
time(time_t
*time)该函数返回自计算机计时的某个时刻起到现在所过去的秒数。
一般是返回自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数。
所以综上所述:
srand((unsigned)time(null))
这语句的含义就是以自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数作为
产生随机数算法的种子seed。
没有语句会对程序产生什么影响:
如果在程序运行时没有自主设置种子的话,用函数rand产生的随机数序列会是一样的。
而用srand设置随机数种子后,可能产生不同的随机序列(概率很大)。
之所以说以很大的概率产生不同的随机数序列,是因为从上面的解释可以看到,
srand是以秒数为单位的。一旦程序多次运行的时间间隔少于1s。那么srand设置种子也没有什么用处。所以库函数产生随机数有一定的缺陷。不知道我解释明白了没有!