如何在C++中查看时间

How can I check time in C++?

本文关键字:时间 C++      更新时间:2023-10-16

我的目标是编写一个可以执行以下操作的程序:当用户输入将来的时间点时,它应该以格式 (hh:mm:ss) 显示到该时间时刻的时间,如果用户请求时间,它应该以某种格式(hh:mm:ss)返回当前时间。如何使用系统时间来实现我的目标?到目前为止,我目前的状态:

#include <iostream>
#include<conio.h>
using namespace std;
class Time{
    int hour, minute, second;
public:
    void SetTime(int hour1=0, int minute1=0, int second1=0){
        hour = hour1;
        minute=minute1;
        second=second1;
        cout<<"set time working";
    }
    void display(){
       cout<<"hour | minute | second"<<endl;
       cout<<hour<<" "<<minute<<" "<<second;
    }
};
int main(){
    Time time;
    //char om;
    int hour1, minute1,second1;
    cout<<"enter the hour,minute,second: ";
    cin>>hour1;
    cin>>minute1;
    cin>>second1;
    time.SetTime(hour1,minute1,second1);
    cout<<"n The current time?";
    time.display();
    return 0;
}

我建议你稍微作弊。开始时,就在用户输入时间之前或之后,您将获得系统时钟值。然后等待用户询问时间。当他询问时,再次获取系统时钟值,从中减去前一个值 - 这将给你经过的时间量。将此金额添加到用户输入的时间,并显示结果。

您必须使用 C 时间函数来获取计算机时钟的时间。

基本思想如下:

  • 询问用户"他的"时间
  • 同时保存计算机的当前时间

何时显示更新的当前时间:

  • 检查计算机当前时间
  • 使用以前存储的时间作为增量计算用户的当前时间

为此,由于 C"time"函数的工作方式,我必须在程序中以秒为单位存储时间变量,因此我必须在一个存储秒的变量中转换小时、分钟和秒。

函数如下:

#include <iostream>
#include <conio.h>
#include <time.h>
using namespace std;
class Time {
private:
    time_t userTime;
    time_t computerTime;
public:
    void SetTime(int hour1 = 0, int minute1 = 0, int second1 = 0)
    {
        userTime = hour1 * 60 * 60 + minute1 * 60 + second1; // Convert input time in seconds.
        time(&computerTime); // Get computer's current time.
        cout<<"set time working";
    }
    void display()
    {
        time_t currentComputerTime;
        time(&currentComputerTime); // Get computer's updated current time.
        time_t currentUserTime = userTime + (currentComputerTime - computerTime); // Calculate current user's time in seconds.
        // Convert time_t variable in hours, minutes and seconds.
        int hour   = currentUserTime / (60 * 60);
        int minute = (currentUserTime / 60) % 60; 
        int second = currentUserTime % 60;
        cout<<"hour | minute | second"<<endl;
        cout<<hour<<" "<<minute<<" "<<second;
    }
};
int main()
{
    Time time;
    //char om;
    int hour1, minute1,second1;
    cout<<"enter the hour,minute,second: ";
    cin>>hour1;
    cin>>minute1;
    cin>>second1;
    time.SetTime(hour1,minute1,second1);
    char pcz[200];
    cout<<"n The current time?";
    cin >> pcz;
    time.display();
    return 0;
}