C++時間對秒數的運算

来源:https://www.cnblogs.com/1zpeasy/archive/2023/03/03/17175783.html
-Advertisement-
Play Games

#使用引用 #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 + se ...


使用引用

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

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 現象 系統根據指定的日期範圍(LocalDateTime)查詢資料庫,結果與直接將SQL語句查詢不一致,系統查詢的並不是期望日期範圍的數據。 通過 LocalDateTime、LocaDate、LocalDate 作為時間插入數據時,時間不對 解決 更換 mysql 的驅動包版本在 8.0.22及以 ...
  • Spring提供的事務使用起來很方便,一個@Transactional註解就搞定全部,但是如果不註意,也會踩坑 提到事務就應該想到至少以下幾點: 1、在事務方法中加鎖,可能會導致鎖失效 無論是JVM自帶的鎖,還是分散式鎖,都有可能出現沒鎖住的情況 原因是解鎖先於事務提交,一旦鎖釋放後其它線程就可以獲 ...
  • 目錄 ElasticSearch 實現分詞全文檢索 - 概述 ElasticSearch 實現分詞全文檢索 - ES、Kibana、IK安裝 ElasticSearch 實現分詞全文檢索 - Restful基本操作 --待發佈 ElasticSearch 實現分詞全文檢索 - Java Spring ...
  • 摘要:本文將以Sermant的SpringBoot 註冊插件的性能測試及優化過程為例,分享在Java Agent場景如何進行更好的性能測試優化及在Java Agent下需要著重註意的性能陷阱。 作者:欒文飛 高級軟體工程師 一、背景介紹 Sermant是一個主打服務治理領域的Java Agent框架 ...
  • PHP語言線上運行編譯,是一款可線上編程編輯器,在編輯器上輸入PHP語言代碼,點擊運行,可線上編譯運行PHP語言,PHP語言代碼線上運行調試,PHP語言線上編譯,可快速線上測試您的PHP語言代碼,線上編譯PHP語言代碼發現是否存在錯誤,如果代碼測試通過,將會輸出編譯後的結果。 該線上工具由IT寶庫提 ...
  • Vue 3 備忘清單 Vue 3漸進式 JavaScript 框架 Vue 3 備忘清單的快速參考列表,包含常用 API 和示例入門,為開發人員分享快速參考備忘單。 開發速查表大綱 入門 介紹 創建應用 應用實例 通過 CDN 使用 Vue 使用 ES 模塊構建版本 模板語法 文本插值 原始 HTM ...
  • 前言 TCP三次握手和四次揮手是面試題的熱門考點,它們分別對應TCP的連接和釋放過程 1.TCP通信包含那幾步? TCP通信過程包括三個步驟:建立TCP連接通道,傳輸數據,斷開TCP連接通道 上圖主要包括三部分:*建立連接、傳輸數據、斷開連接。* 建立TCP連接很簡單,通過三次握手便可建立連接。 建 ...
  • 1.單線程 單線程:只有一個線程,即CPU只執行一個任務(一個線程) 1 class Hero{ 2 String name; 3 Hero(String name){ 4 this.name = name; 5 } 6 public void show(){ 7 System.out.printl ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...