黑马程序员技术交流社区

标题: 输出下一秒的时间 [打印本页]

作者: Akrios    时间: 2015-4-18 00:42
标题: 输出下一秒的时间
输入一个时间,输出这个时间后的下一秒
例如:
输入:  23:59:59     输出: 00:00:00
输入:  12:34:23     输出: 12:34:24


这道题真不会啊 急求大神帮忙 感谢


作者: 麻木    时间: 2015-4-18 17:17
60进制和24进制
输入一个时间值 加入设定 输入小时 hour 分钟minute 秒 second

second=second  + 1;
if(60==second)
{second = 0;
minute =minute +1;
if(60==minute)
{
minute = 0;
hour = hour+1;
if(24==hour)
{
hour =0;并输出“新的一天了”
}
}
}
然后将新的 hour minute second输出到屏幕
作者: wslinke    时间: 2015-4-18 18:29
本帖最后由 wslinke 于 2015-4-18 18:30 编辑

  1. /*
  2. 输入一个时间,输出这个时间后的下一秒
  3. 例如:
  4. 输入:  23:59:59     输出: 00:00:00
  5. 输入:  12:34:23     输出: 12:34:24
  6. */

  7. #include <stdio.h>
  8. int main(void)
  9. {
  10.     printf("输入一个时间,格式如右  23:59:59\n");
  11.    
  12.     //声明3个整型变量来存放小时,分钟,秒钟
  13.     int hour,minute,second;
  14.    
  15.     //按指定格式读取时间
  16.     scanf("%d:%d:%d",&hour,&minute,&second);
  17.    
  18.     //先对秒钟数加1,如果大于等于60,就减掉60,分钟数进1
  19.     if (++second >= 60) {
  20.         second -= 60;
  21.         minute++;
  22.     }
  23.    
  24.     //判断秒钟加1是否使得分钟数大于等60,如果超过59分就对小时数进1
  25.     if (minute >= 60){
  26.         minute -= 60;
  27.         hour++;
  28.     }
  29.    
  30.     //如果小时数超过23,新的一天开始了,小时数减去24
  31.     if (hour >= 24) {
  32.         hour -= 24;
  33.     }
  34.    
  35.     //这里用%02d打印时间 2代表输出2位数字宽度,0代表不足2位的前面补零
  36.     printf("%02d:%02d:%02d",hour,minute,second);
  37.     return 0;
  38. }
复制代码



作者: 麻木    时间: 2015-4-18 18:34
wslinke 发表于 2015-4-18 18:29

高手 给赞




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2