C++时间对秒数的运算
2023-03-03 15:22 由
1zPeasy 发表于
#后端开发
使用引用
#include <iostream>
using namespace std;
struct Time{
int h;
int m;
int s;
};
void timeCompute(Time &t, int sec){ //引用作为形参
t.m = t.m + (t.s + sec)/60; //分钟的进位
t.s = (t.s + sec)%60; //秒数位计算后剩余的时间
t.h = t.h + t.m/60; //小时的进位
t.m = t.m%60; //分钟位计算后剩余的时间
t.h = t.h%24; //小时位取余实现24小时制
}
int main(){
int repeat,sec; //重复次数
cin >> repeat;
struct Time t; //创建一个time类型的结构体 t
for(int i = 0; i < repeat; i++){
scanf("%d:%d:%d", &t.h, &t.m, &t.s); //存入结构体 h m s
cin >> sec; //要度过的秒数
timeCompute(t,sec);
cout << t.h << ":" << t.m << ":" << t.s << endl;
}
return 0;
}
复杂且笨的写法
/*
* @Author: DEFT:[email protected] V:NOTFOUND6O6
* @Date: 2023-02-23 19:44:59
* @LastEditors: Please set LastEditors
* @LastEditTime: 2023-03-03 15:19:55
* @FilePath: \WenkaiC\time_conversion.cpp
* @Description:
*
* Copyright (c) 2023 by 1zPeasy, All Rights Reserved.
*/
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char const *argv[])
{
int repeat,hour,minute,second,spend_second,add_minute;
cin >> repeat; //输入重复次数
for (int i = 0; i < repeat; i++)
{
int num_scanned = scanf("%d:%d:%d", &hour, &minute, &second); //输入时间
cin >> spend_second; //输入要度过的秒数
second = second + spend_second;
add_minute = second/60; //计算秒数加完到底是要进位多少分钟
second = second%60; //计算进位分钟后还剩多少秒
minute = minute + add_minute; //进位后的分钟
//判断minute是否需要进位
if (minute >=60) //如果更新后的分钟大于等于60
{
hour = hour + minute/60; //计算更新后的hour
minute = minute % 60; //分钟数进位后minute还剩多少分钟
}
//判断hour是否需要进位
if (hour >= 24) //如果进位后小时数大于=24
{
hour = hour % 24; //更新后的小时数
}
cout << "time: " << hour << ":" << minute << ":" << second << endl;
//判断scanf返回值用来处理错误
if (num_scanned != 3) {
}
}
return 0;
}
热门相关:仙城纪 寂静王冠 仗剑高歌 美容室:特殊服务1 刺客之王