在计算机的时间添加一个数字

时间:2016-03-31 14:53:24

标签: c

这是一个打印当前时间的程序。如何在打印时添加数字。示例:程序的输出为 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);
}

3 个答案:

答案 0 :(得分:3)

如果您正在编写用于获取当前系统时间并对其执行算术运算的应用程序,则更好的方法是在C中使用timeval结构。

它出现在"sys/time.h"标头中,以秒和微秒格式存储时间。此外,它还具有gettimeofday()函数来获取当前系统时间。

以下链接供您参考:

  1. Timeval struct
  2. gettimeofday() function
  3. 注意:此结构使用的某些功能不可移植,只能在基于Linux的系统上使用。

答案 1 :(得分:2)

将整数直接添加到void setStartAndEnd(Calendar aDate, Calendar start) { if (aDate.get(Calendar.DAY_OF_WEEK) == 1) { start.setTime(aDate.getTime()); } else { start.add(Calendar.DAY_OF_WEEK, 5); } hour变量,类似于以下两种不同的方式:

minute

或者在'printf,

中添加文字
hour += 1;

hour = hour + 1;

正如大卫在下面评论的那样,请注意分别推迟过去23或59小时或分钟。

答案 2 :(得分: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;
}