我正在研究一个程序元素,该程序在(24小时)小时和分钟内获取系统时间,并将其格式化为HH:MM并将其存储在数组中。分钟也必须增加1.这是我的代码:
strftime (timeh,10,"%H:",formtime);
strftime (timem,10,"%M",formtime);
timem1 = atoi(timem);
++timem1;
itoa(timem1, timem, 10);
strcpy(time, timeh);
strcat(time, timem);
我通过打印时间来测试它,这是printf(“%s”,时间)的输出: 5.(时间是凌晨1点04分)
单独地,小时打印为空(上午1:08),并且分钟打印正确。
如何才能让数组时间保持格式正确的HH:MM时间?
感谢您的所有建议
答案 0 :(得分:2)
如果我正确地读了你的问题,你应该可以用:
formtime->tm_min++; /* Additional checks needed. */
strftime(time, 10, "%H:%M", formtime);
答案 1 :(得分:1)
不是试图直接调整分钟而不必担心在一小时内进行换行,而是应该将时间调整60秒,然后再将其分成结构格式进行格式化:
time_t now;
time(&now);
now += 60;
strftime(buffer, sizeof(buffer), "%H:%M", localtime(&now));
请注意,调用数组time
并不是一个好主意,因为这会与用于获取当前时间的标准函数time
冲突。