2016-03-31 3 views
-2

Это программа, которая печатает текущее время. как добавить цифры к напечатанному времени. Пример: выход программы 15:35. как я могу его распечатать 16:35? если это невозможно; Я хотел бы знать, являются ли они любыми другими методами, которые я могу использовать. благодарядобавление номера на компьютер

#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;' 'перед printf', но вы должны учитывать ситуацию, когда' hour' уже ' И перейдите к '0'. Как 'час = 23? 0: час + 1; ' –

+0

Правильно отформатируйте свой код. –

ответ

2

Добавить целые непосредственно к вашим hour или minute переменных, аналогичных двум различными способами здесь:

hour += 1; 

hour = hour + 1; 

Или сделать буквальный добавление в вашем файле `Printf,

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

As Дэвид прокомментировал ниже, помните о том, чтобы нажать час или минута 23 или 59 соответственно.

+2

Что делать, если час '23'? –

+0

@ DavidC.Rankin Спасибо, я добавил ваш комментарий к ответу. – 8protons

+1

большое спасибо. это сработало! –

3

Если вы пишете заявление на получение текущего системного времени и выполнения операции арифметического на нем, лучший способ заключается в использовании структуры в формата: первый формат С.

Он присутствует в "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; 
} 
Смежные вопросы