Time()
//系统时间
{
printf("\n\n*************
欢迎进入*********系统
*************\n")
printf("\n\n
版本所属:
******
\n")
printf("\n\n
*****\n\n
")
CString
sDate
CString
*p
p
=
&sDate
while(1)
{
CTime
Now=CTime::GetCurrentTime()
*p=Now.Format("%Y年
%m月
%d日
%H时
%M分
%S秒")
printf("%s",
*p)
Sleep(1000)
for(int
i=1
i<=strlen(*p)
i++)
{
printf("\b")
//
printf("
")
printf("\b")
}
}
printf("\n
*******\n")
}
当运行之后,虽然实现了
实现动态显示当前系统时间,
但是无法继续执行
Time函数后面的程序了,即无法继续执行下面摇奖程序了。
如果是使用MFC来做,那么这种问题是不存在的,直接使用C语言,运行于DOS窗口。
需要利用C语言的时间函数time和localtime,具体说明如下:
一、函数接口介绍:
1、time函数。
形式为time_t time (time_t *__timer)
其中time_t为time.h定义的结构体,一般为长整型。
这个函数会获取当前时间,并返回。 如果参数__timer非空,会存储相同值到__timer指向的内存中。
time函数返回的为unix时间戳,即从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
由于是秒作为单位的,所以这并不是习惯上的时间,要转为习惯上的年月日时间形式就需要另外一个函数了。
2、localtime函数。
形式为struct tm *localtime (const time_t *__timer);
其中tm为一个结构体,包含了年月日时分秒等信息。
这种结构是适合用来输出的。
二、参考代码:
#include <stdio.h>#include <time.h>
int main ()
{
time_t t
struct tm * lt
time (&t)//获取Unix时间戳。
lt = localtime (&t)//转为时间结构。
printf ( "%d/%d/%d %d:%d:%d\n",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec)//输出结果
return 0
}
注意事项:
struct tm中的tm_year 值为实际年减去1900, 所以输出的时候要是lt->tm_year+1900。
c++使用头文件
time.h
,c使用ctime,具体使用方法搜一下
函数
sturct
tm
*localtime(const
time_t
*time)来获得本地时间
本
程序
既输出系统的本地时间
#include<time.h>
#include<stdio.h>
int
main(void)
{
struct
tm
*local
time_t
t
t=time(NULL)
local=localtime(&t)
printf("local
time
and
date:%s\n",asctime(local))
return
0
}
几个常用的时间函数
time()//取得系统时间
gmtime()//转换成国标标准之间
localtime()//转换成本地时间
asctime()//转换成字符形式
ctime()//转换成字符形式
strftime()//类似于printf()