2016-03-31 12 views
-2

Bu, geçerli saati basan bir programdır. Yazdırılan saate sayıları nasıl eklerim. Örnek: programın çıkışı 15:35'dur. Nasıl yazdırabilirim 16:35? bu mümkün değilse; Kullanabileceğim başka yöntemler olup olmadığını bilmek isterim. ,Bilgisayarın saatine bir sayı ekleme

hour += 1; 

hour = hour + 1; 

Veya `printf değişmez ek yapmak

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

Farklı: teşekkürler

#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

Belli ki, sen 'yapacağını saat + = 1; hour'' zaten nerede '' 'printf' önce, ancak durumun hesaba gerekir 23 've '0'a yuvarlayın. Saat = 23 gibi mi? 0: saat + 1; ' –

+0

Lütfen kodunuzu doğru biçimlendirin. –

cevap

2

burada iki farklı şekilde tutmaya benzer şekilde hour veya minute değişkenlere doğrudan tamsayılar ekle David, aşağıda yorumladı, sırasıyla 23 veya 59 geçmiş saat veya dakika itmek için dikkatli olun.

+2

Saat saat 23 ise? –

+0

@ DavidC.Rankin Teşekkür ederiz, yorumunuzu cevaba ekledim. – 8protons

+1

çok teşekkürler. işe yaradı! –

3

geçerli sistem saatini alma ve üzerinde aritmetik işlemi gerçekleştirirken için bir uygulama yazıyorsanız, daha iyi bir yolu C

O "sys/time.h" başlık ve mağazalarda zaman içinde mevcuttur içinde timeval yapı kullanmaktır iki saniye ve mikrosaniye formatı. Ayrıca, mevcut sistem saatini almak için gettimeofday() işlevine sahiptir. Takip

referans için bağlantılar vardır:

  1. Timeval struct
  2. gettimeofday() function

NOT: struct'ın ile kullanılan fonksiyonların bazıları taşınabilir değildir ve Linux üzerinde sadece çalışabilir tabanlı sistemler.

0

onay bu basit fonksiyon

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