2016-04-23 5 views
-6

私の目標は、次のことを行うプログラムを書くことです。 ユーザーが将来時刻を入力すると、その時刻までの時刻をフォーマット(hh:mm:ss)、 と表示する必要があります時間の場合、現在の時刻を形式(hh:mm:ss)で返します。私の目標を達成するためにシステム時間をどのように使うのですか? 現在のステータス:C++で時刻を確認するにはどうすればいいですか?

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

は、ここでの機能です。 _system clock_と呼ばれています。したがって、ユーザーが時間を設定したときに照会するだけで、照会するときに照会することができます。差を秒単位で計算し、それをあなた自身の時計ルーチンに加えてください。あるいは ''の残りの部分を使用してください。 – paddy

答えて

0

コンピュータ時計の時間を取得するには、C時間関数を使用する必要があります。

基本的な考え方は以下の通りです:

  • 更新された現在の時間を示すまでの時間があるとき

コンピュータの現在の時間を節約すると同時にでは「彼の」時間

  • ためにユーザーに依頼:

    • チェックコンピュータの現在時刻
    • C「時間」機能がどのように機能するかのために、これを行うには、デルタ

    として以前保存された時間を使用して、ユーザーの現在時刻を計算し、私はプログラムの中で秒単位の時間変数を格納するためにきたので、私は持っています秒、分、秒を1つの変数に変換します。コンピュータは常にバックグラウンドでカウントされ

    #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; 
    } 
    
  • +0

    あなたはちょうどプログラムで何が起こっているのか説明できます – Mayur

    +0

    私は答えを修正しました。今はっきりしていることを願って – Carlo

    1

    私は少しチートすることをお勧めします。ユーザーが時刻を入力する直前または直後の開始時に、システムクロック値が取得されます。その後、ユーザーが時間を求めるのを待ちます。彼が尋ねると、再びシステムクロック値を取得し、以前の値を引きます。これは、経過した時間を示します。この金額をユーザーが入力した時間に加え、結果を表示します。