C++显示当前动态时间

 题目要求:
        输出当前动态时间,包含年月日,时分秒和星期,居中显示.

tm结构定义了 年、月、日、时、分、秒、星期

用localtime获取当前系统时间,该函数将一个time_t时间转换成tm结构表示的时间函数原型:

struct tm * localtime(const time_t *)

代码中涉及的tm结构体相关内容(图片):

 具体代码如下,注释很详细,我用的编译器是codeblocks,复制下面代码能直接出结果

#include<iostream>
#include<stdio.h> //scanf,printf
#include<ctime> //time()
#include<windows.h>//Sleep(),system()
using namespace std;

int main()
{
    //srand(time(NULL)); //srand(seed),seed是种子,此处为time(NULL)
    //for(int i = 0; i < 5; i++)
    //printf("%d\n",rand()%100);//头文件都是stdlib.h
    //获得1-100随机数,只用rand每次出现"随机数"一样

    while(1)
    {
        time_t now = time(NULL);//这个语句放循环里,保证每次输出变化
        //用time_t声明变量,获取当前秒数,即距离1970 01.01 00:00:00的秒数
        //此处now是1970距离现在的秒数
        tm time = *localtime(&now);//tm是结构体名,time是变量名,tm_year等是成员名
        //localtime()函数返回指向tm结构的指针,本地时间
        //返回的是距离1970/01/01 00:00:00的秒数
        int year = time.tm_year + 1900; //变量名.成员名访问成员
        int month = time.tm_mon + 1;
        int day = time.tm_mday;
        int hour = time.tm_hour;
        int min = time.tm_min;
        int sec = time.tm_sec;
        int week = time.tm_wday;

        printf("%3d:%02d:%02d\n",hour,min,sec);
        printf("%4d/%02d/%02d\n",year,month,day);
        printf("  星期%d\n",week);//这里不能少%2d,否则会报错invalid conversion from int to const char*
        Sleep(1000);//每1000毫秒显示一次
        system("cls");//用来清屏,防止无限输出三行,当然也可一行输出,最后加个\r(只回车不换行)
    }
    return 0;
}

下面是运行结果:

 

 秒数会不断变化

里面涉及的头文件有:#include<stdio.h>#include<ctime>,  #include<windows.h>

如果想获取随机数的话,可以这样:

     //srand(time(NULL)); //srand(seed),seed是种子,此处为time(NULL)
    //for(int i = 0; i < 5; i++)
    //printf("%d\n",rand()%100);//头文件都是stdlib.h

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千帐灯无此声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值