首页 > 编程语言 >C++时间对秒数的运算

C++时间对秒数的运算

时间:2023-03-03 15:35:37浏览次数:32  
标签:秒数 运算 hour int C++ 60 second 进位 minute

使用引用

#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;
}

标签:秒数,运算,hour,int,C++,60,second,进位,minute
From: https://www.cnblogs.com/1zpeasy/p/17175783.html

相关文章

  • c++ 五种排序方式
    第一种:冒泡排序冒泡排序遍历两次数组,时间复杂度On2,每一次用一个元素和后续其他所有元素比较,若是大小不符合预期则反转位置,具体实现代码如下:#include<iostream>#include......
  • Linux开发C++
    首先在windows上安装linux系统。VM简介VMwareWorkstation中文版是一个“虚拟PC”软件。它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多......
  • 【大型软件开发】开发日志(五).net框架与C++的融合:CLR——C++调用C#的DLL
    做什么?先说一下场景,现在正在开发一个QtActiveServer,也就是用一个应用程序去向其他的组件暴露接口,以达到提供服务的目的。然后新版的框架要提供大部分功能,也就是要重做大......
  • C/C++学生考勤系统[2023-03-03]
    C/C++学生考勤系统[2023-03-03]功能:学生考勤系统应包含各班学生的全部信息。每个学生是一条记录,包括姓名、性别、学号、出勤情况等。本系统可模拟考勤过程,记录考勤结果,并......
  • C/C++ 数据结构使用数组实现队列的基本操作
    //使用数组实现队列#include<iostream>#include<Windows.h>usingnamespacestd;#defineMAXSIZE5//队列的最大容量typedefintDataType;//队列中的元素类型......
  • 实验一 C语言开发环境使用和数据类型、运算符、表达式
    实验任务一1-1程序源码//打印一个字符小人#include<stdio.h>intmain(){printf("o\n");printf("<H>\n");printf("II\n");return0;......
  • c++注释
    注释分为单行注释和界定符对注释单行注释://界定符对注释:/*      */(用于注释多行)注意:当界定符对注释多行时更规范的做写法是每一行前面都要有个星号  ......
  • c/c++ 随机数
    #include<stdio.h>#include<math.h>#include<stdlib.h>#include<algorithm>#include<string.h>#include<time.h>//头文件#include<iostream>usingnamesp......
  • UEC++学习(1)
    第三章流程控制第一节C++和蓝图循环ForLoop蓝图节点相当于C++中的for循环,ForeLoopWithBreak节点相当于for循环体中加了break语句,当触发某个条件时直接结束。for(){ ......
  • UEC++学习(2)
    第三章断言第一节简单的断言断言让程序的进程中断,方便程序员发现在哪里发生了问题。AGameBase*GameBase=nullptr;check(false);check(GameBase);//断言给false......