[英]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(¤tComputerTime); // 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.