C语言中的时间相关的函数
<time.h> 是C标准函数库中获取时间与日期、对时间与日期数据操作及格式化的头文件。
宏:
NULL null是一个null指针常量的值
CLOCKS_PER_SEC 每秒的时钟数
变量:
示例程序:
相关函数如下:
示例程序如下:
<time.h> 是C标准函数库中获取时间与日期、对时间与日期数据操作及格式化的头文件。
宏:
NULL null是一个null指针常量的值
CLOCKS_PER_SEC 每秒的时钟数
变量:
typedef size_t 类型定义
typedef clock_t类型定义
struct tm 结构体
struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。 */
};
函数:
clock_t clock( void);; 返回从程序运行开始所经过的CPU时钟数
typedef clock_t类型定义
struct tm 结构体
struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。 */
};
函数:
clock_t clock( void);; 返回从程序运行开始所经过的CPU时钟数
示例程序:
/*
clock example: frequency of primes
*/
#include <stdio.h>
#include <time.h>
#include <math.h>
int frequency_of_primes ( int n) {
int i,j;
int freq=n- 1;
for (i= 2; i<=n; ++i) for (j=sqrt(i);j> 1;--j) if (i%j== 0) {--freq; break;}
return freq;
}
int main ()
{
int f;
int t;
printf ( " Calculating...\n ");
f = frequency_of_primes ( 99999);
t = clock();
printf ( " The number of primes lower than 100,000 is: %d\n ",f);
printf ( " It took me %d clicks (%f seconds).\n ",t,(( float)t)/CLOCKS_PER_SEC);
return 0;
}
#include <stdio.h>
#include <time.h>
#include <math.h>
int frequency_of_primes ( int n) {
int i,j;
int freq=n- 1;
for (i= 2; i<=n; ++i) for (j=sqrt(i);j> 1;--j) if (i%j== 0) {--freq; break;}
return freq;
}
int main ()
{
int f;
int t;
printf ( " Calculating...\n ");
f = frequency_of_primes ( 99999);
t = clock();
printf ( " The number of primes lower than 100,000 is: %d\n ",f);
printf ( " It took me %d clicks (%f seconds).\n ",t,(( float)t)/CLOCKS_PER_SEC);
return 0;
}
相关函数如下:
time_t time(time_t *timer); 取得目前的时间
struct tm *localtime( const time_t *timer);把time_t转换为当地时间和日期
double difftime(time_t time1, time_t time2); 计算两个时刻之间的时间差
time_t mktime( struct tm *timeptr);将时间结构数据转换成经过的秒数
char *asctime( const struct tm *timeptr); 将时间和日期以字符串格式表示
char *ctime( const time_t *timer); 把日期和时间转换为字符串
struct tm *gmtime( const time_t *timer); 把日期和时间time_t转换为(GMT)时间
size_t strftime( char *ptr, size_t maxsize, const char *format, const struct tm *timeptr); 将时间格式化为字符串
struct tm *localtime( const time_t *timer);把time_t转换为当地时间和日期
double difftime(time_t time1, time_t time2); 计算两个时刻之间的时间差
time_t mktime( struct tm *timeptr);将时间结构数据转换成经过的秒数
char *asctime( const struct tm *timeptr); 将时间和日期以字符串格式表示
char *ctime( const time_t *timer); 把日期和时间转换为字符串
struct tm *gmtime( const time_t *timer); 把日期和时间time_t转换为(GMT)时间
size_t strftime( char *ptr, size_t maxsize, const char *format, const struct tm *timeptr); 将时间格式化为字符串
示例程序如下:
#include <stdio.h>
#include <time.h>
#define MST (-7)
#define UTC (0)
#define CCT (+8)
int main(){
time_t rawtime;
struct tm *timeinfo,*ptm;
time_t start,end;
char szInput [ 256];
char buffer[ 80];
double dif;
char *weekday[]={ " Sunday ", " Monday ", " Tuesday ", " Wednesday ", " Thursday ",
" Friday ", " Saturday "};
time(&rawtime);
printf( " The current local time is:<ctime>%s ",ctime(&rawtime));
timeinfo=localtime(&rawtime);
printf( " The current local time is:<asctime>%s ",asctime(timeinfo));
strftime (buffer, 80, " Now it's %I:%M%p. ",timeinfo);
puts (buffer);
mktime(timeinfo);
printf( " Today is a %s.\n ",weekday[timeinfo->tm_wday]);
ptm=gmtime(&rawtime);
puts ( " Current time around the World: ");
printf ( " Phoenix, AZ (U.S.) : %2d:%02d\n ", (ptm->tm_hour+MST)% 24, ptm->tm_min);
printf ( " Reykjavik (Iceland) : %2d:%02d\n ", (ptm->tm_hour+UTC)% 24, ptm->tm_min);
printf ( " Beijing (China) : %2d:%02d\n ", (ptm->tm_hour+CCT)% 24, ptm->tm_min);
time (&start);
printf ( " Please, enter your name: ");
fgets (szInput, 256,stdin);
time (&end);
dif = difftime (end,start);
printf ( " Hi %s.\n ", szInput);
printf ( " It took you %.2lf seconds to type your name.\n ", dif );
}
#include <time.h>
#define MST (-7)
#define UTC (0)
#define CCT (+8)
int main(){
time_t rawtime;
struct tm *timeinfo,*ptm;
time_t start,end;
char szInput [ 256];
char buffer[ 80];
double dif;
char *weekday[]={ " Sunday ", " Monday ", " Tuesday ", " Wednesday ", " Thursday ",
" Friday ", " Saturday "};
time(&rawtime);
printf( " The current local time is:<ctime>%s ",ctime(&rawtime));
timeinfo=localtime(&rawtime);
printf( " The current local time is:<asctime>%s ",asctime(timeinfo));
strftime (buffer, 80, " Now it's %I:%M%p. ",timeinfo);
puts (buffer);
mktime(timeinfo);
printf( " Today is a %s.\n ",weekday[timeinfo->tm_wday]);
ptm=gmtime(&rawtime);
puts ( " Current time around the World: ");
printf ( " Phoenix, AZ (U.S.) : %2d:%02d\n ", (ptm->tm_hour+MST)% 24, ptm->tm_min);
printf ( " Reykjavik (Iceland) : %2d:%02d\n ", (ptm->tm_hour+UTC)% 24, ptm->tm_min);
printf ( " Beijing (China) : %2d:%02d\n ", (ptm->tm_hour+CCT)% 24, ptm->tm_min);
time (&start);
printf ( " Please, enter your name: ");
fgets (szInput, 256,stdin);
time (&end);
dif = difftime (end,start);
printf ( " Hi %s.\n ", szInput);
printf ( " It took you %.2lf seconds to type your name.\n ", dif );
}