2016-03-31 8 views
-2

これは、現在の時刻を出力するプログラムです。どのように私は印刷時間に数字を追加するのですか?例:プログラムの出力は15:35です。どのように印刷するのですか16:35?これが不可能な場合。彼らが私が使うことができる他の方法であるかどうかを知りたい。 、コンピュータの時刻に数字を追加する

hour += 1; 

hour = hour + 1; 

またはあなたの `printf関数リテラル追加を行うよう

printf("the Current time is %d:%d\n",hour + 1,minute); 

を:感謝

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
void main() 
{ 
    FILE *fp; 
    char hc1,hc2,mc1,mc2; 
    int hi1,hi2,mi1,mi2,hour,minute; 
    system("echo %time% >time.txt"); 
    fp=fopen("time.txt","r"); 
    if(fp==NULL) 
     exit(1) ; 
    hc1=fgetc(fp); 
    hc2=fgetc(fp); 
    fgetc(fp); 
    mc1=fgetc(fp); 
    mc2=fgetc(fp); 
    fclose(fp); 
    remove("time.txt"); 
    hi1=hc1; 
    hi2=hc2; 
    mi1=mc1; 
    mi2=mc2; 
    hi1-=48; 
    hi2-=48; 
    mi1-=48; 
    mi2-=48; 
    hour=hi1*10+hi2; 
    minute=mi1*10+mi2; 
    printf("the Current time is %d:%d\n",hour,minute); 
} 
+1

まあ、明らかに、あなたは 'だろう時間+ = 1; hour'は'すでにある場合、 '' 'printf'前に、しかし、あなたは、状況を説明するために必要があるだろう「23」となり、「0」になる。 '時間= 23のように? 0:時+ 1; ' –

+0

コードを正しくフォーマットしてください。 –

答えて

2

は直接ここでは2つの異なった方法に類似ごhourminute変数に整数を追加しますダビデは以下のようにコメントしました。時を分けて23分、あるいは59分を押すことに気をつけてください。

+2

時間が23の場合はどうなりますか? –

+0

@ DavidC.Rankinありがとう、私は答えにあなたのコメントを追加しました。 – 8protons

+1

ありがとう。出来た! –

3

あなたは、現在のシステム時刻を取得し、その上で演算を行うためのアプリケーションを作成する場合は、より良い方法はC.

で体timeval構造体を使用することですそれは"sys/time.h"ヘッダに存在しているとの時間を保存します秒とマイクロ秒の両方の形式です。また、現在のシステム時間を取得するためにgettimeofday()機能を持っています。続き

はあなたの参照のためのリンクです:

  1. Timeval struct
  2. gettimeofday() function

注:この構造体で使用される機能のいくつかは移植性がないと、Linuxでのみ動作することがありシステムベース。

0

チェックこのシンプルな機能

void AddTime(int& currentH, int& currentM, int& currentS, int addH, int addM, int addS) 
{ 
    int extraM=(currentS+addS)/60; 
    currentS=(currentS+addS)%60; 
    int extraH=(currentM+addM+extraM)/60; 
    currentM=(currentM+addM+extraM)%60; 
    int extraD=(currentH+addH+extraH)/24; 
    currentH=(currentH+addH+extraH)%24; 
} 
関連する問題