簡體   English   中英

如何在 C++ 中檢查時間?

[英]How can I check time in C++?

我的目標是編寫一個程序來執行以下操作:當用戶輸入未來的時間點時,它應該以格式(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 “時間”函數的工作方式,我必須在程序中以秒為單位存儲時間變量,因此我必須將小時、分鍾和秒轉換為一個存儲秒的單個變量。

這是函數:

#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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM