(C/C++学习)12.获取系统时间制作时钟

说明:通过调用函数来获取系统当前时间,并制作一个数字式的时钟,时钟的显示包括年、月、日、小时、分以及秒,通过系统屏幕的刷新来对不断更新的时间进行屏幕的显示。


一.对相关函数的学习

1.time_t time(time_t *second);

a.头文件:<time.h>

b.该函数返回自纪元1970-01-01 00:00:00 起经过的秒数,这是一个很大的数,若 second 不为NULL,则返回值将自动存储在该指针中。

注意:此处的 time_t 以及 __time32_t 都是 long 的别名,其实也就是long int 变量类型。


2.struct tm * localtime (const time_t * timer);

a.头文件:<stdio.h>

b. 该函数的参数为从1990.1.1 00:00:00 到现在累积的秒数,即上个函数的返回值取地址,其返回值为一个结构体类型,其中包含了日期、小时等数据成员;具体见下表:


3.int kbhit(void);

a.头文件:<conio.h>

b.该函数的功能在于检测当前是否有键盘按键按下,如果有则返回一个非 0 值,否则返回0.


3.void sleep(unsigned second);

a.头文件:<unistd.h>

b.该函数能把进程挂起一段时间,单位为秒,无返回值。


4.void usleep(int micro_second);

a.头文件:<unistd.h>

b.把进程挂起一段时间,单位为微秒,无返回值。这个函数实测在 windows Qt编译器下不起作用。(网络上解释:该函数不能用在在windows系统下,只能用于 linux 的测试环境下面。)

注意:usleep() 与sleep() 类似,都用于将进程挂起一段时间。当需延迟时间数量级为秒的时候,尽量使用 sleep(),当为几十毫秒或者更小时,使用 usleep() 更精确。


5.int system(char *command);

a.头文件:<stdlib.h>

b.执行一个 windows 的 DOS 命令。这节主要讲一个命令:清屏。用来定时的刷新显示屏上的系统时间。在windows环境下,该函数为 system(“cls”);而在linux环境下,该函数为system(“clear”);并且,在linux环境下,也可以用如下语句来代替该语句:puts(“\033c”),printf(“\033c”)。两种方式也存在一定的差别,system()函数在调用命令时会“占用 ”一定的进程时间,如果需要精确的定时会导致定时不准确。而puts(“\033c”)和printf(“\033c”)则相对来说占用系统进程时间较少,用于定时比较精确。


二.数字式时钟的实现

代码功能:获取系统实时的时间(包括年、月、日、小时、分钟以及秒)等,显示在屏幕上,并刷新屏幕。

  1 #include<time.h>
  2 #include<iostream>
  3 #include<unistd.h>
  4 #include<conio.h>
  5 using namespace std;
  6 int main()
  7 {
  8     while(!kbhit())
  9     {
 10         time_t t = time(NULL);
 11         struct tm *localt = localtime(&t);
 12         system("cls");
 13         cout<<‘\n‘<<"\t\t";
 14         cout<<localt->tm_year+1900<<‘\\‘;
 15         cout<<localt->tm_mon+1<<‘\\‘;
 16         cout<<localt->tm_mday<<‘\t‘;
 17         cout<<localt->tm_hour<<‘:‘,
 18         cout<<localt->tm_min<<‘:‘,
 19         cout<<localt->tm_sec;
 20         sleep(1);
 21     }
 22     return 0;
 23 }

程序运行结果:

原文地址:https://www.cnblogs.com/tuihou/p/9789427.html

时间: 2025-01-12 21:21:59

(C/C++学习)12.获取系统时间制作时钟的相关文章

Android获取系统时间方法详解

Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar.getInstance()函数获取一个实例,再为该实例设定时区(中国的时区为GMT+8:00),最后使用Calendar.get()函数获取时间的具体信息,如年,月,日,小时,分,秒,星期几. package com.hzhi.time_example; import java.util.Cale

获取系统时间的DOS命令

DOS C:\Users\yaozhendong>echo %date:~0,10% %time%2011/12/24 19:45:41.25 前段时间工作中需要对一个地址做定时PING操作,并将结果输出到TXT文件中,为此做了个批处理文件,用到了获取系统时间的DOS命令“%date%”“%time%”.下面把具体使用方法记录如下 文件内容示例: “echo %date% %time%>>d:\bmw\ping%date:~0,10%_%time:~0,2%.%time:~3,2%.tx

VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法

1.使用CTime类(获取系统当前时间,精确到秒) CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime();//获取系统日期 str=tm.Format("现在时间是%Y年%m月%d日 %X"); MessageBox(str,NULL,MB_OK); a,从CTimet中提取年月日时分秒 CTime t = CTime::GetCurrentTime(); int d=t.GetDay(); //获得几号 int y=t.

c++ 怎样获取系统时间

c++ 怎样获取系统时间 2008-04-28 15:34 //方案— 长处:仅使用C标准库:缺点:仅仅能精确到秒级 #include <time.h> #include <stdio.h> int main( void ) { time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) ); puts( tm

as3 setInterval,setTimeOut,Timer及获取系统时间

1. setInterval 1 //setInterval:设置函数每隔多久会执行一次,除非remove,否则会一直执行下去. 2 //setInterval(函数名,延迟时间,参数); eg: 3 package{ 4 import flash.display .Sprite; 5 import flash.utils .*; 6 7 public class as3test02 extends Sprite{ 8 9 public function as3test02(){ 10 var

使用Calender类获取系统时间和时间和运算

使用Calender类获取系统时间和时间和运算: 1 @Test 2 public void testCal(){ 3 //使用Calender对象获取时间,并对时间进行计算: 4 Calendar instance = Calendar.getInstance(); 5 //获取系统的当前时间,并转换为字符串: 6 Date time = instance.getTime(); 7 SimpleDateFormat simpleDateFormat = new SimpleDateFormat

C语言 获取系统时间与睡眠时间函数

摘要: 以ms为单位,获取系统时间.睡眠或延迟时间函数的使用方法. 1 #include<stdio.h> 2 #include <time.h> 3 #include <sys/time.h> 4 #include <unistd.h> 5 6 typedef unsigned int uint32_t; 7 #define csp_sleep_ms(time_ms) usleep(time_ms * 1000); 8 9 10 uint32_t csp_

获取系统时间的最佳批处理

使用批处理获取时间时,通常%DATE%来获取,但这个格式是受系统限制, 使用下面的方法获取系统时间就不用考虑格式的变化 1 @echo off 2 call :GetLocaldatetime 3 echo %GetLocaldatetime% 4 5 call :GetUTCTime 6 echo %GetUTCTime% 7 8 call :GetTimeZone 9 echo %GetTimeZone% 10 11 exit/b 12 13 :GetLocaldatetime 14 for

Java获取系统时间少了八个小时

Java获取系统时间少了八个小时 今天忽然遇到需要获取当前时间的问题,我向来谨慎,先测试获取到的系统时间是否正确,结果竟然发现少了八个小时,晕死了,记得之前在页面用javascript获取过当前时间,都能正确获取的.然后开始上网查,更晕了,答案各种各样,有用代码的方式(这肯定不行,因为程序不只要在自己的机子上跑的),也有修改eclipse和tomcat安装文件的,更有修改注册表的,NND,还真不知要用哪个,后来,终于找到一个,说问题出在JRE上,我很认同,一试,果然行!下面附上步骤,希望给遇到同