You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Arduino C的时分秒累加与格式转换技术咨询

时分秒累加与格式转换实现方案

首先修正代码中的语法错误,并完成completehours、completemins、completesecs的转换逻辑,核心是利用**除法(/)**实现进位、**取模(%)**保留当前单位剩余值:

void setup() {
  Serial.begin(9600); // 初始化串口通信

  int swimhours = 0;
  int swimmins = 50;
  int swimsecs = 59;
  int bikehours = 2;
  int bikemins = 50;
  int bikesecs = 59;
  int runhours = 1;
  int runmins = 50;
  int runsecs = 59;

  // 先累加各单位的原始总和
  int totalhours = swimhours + bikehours + runhours;
  int totalmins = swimmins + bikemins + runmins;
  int totalsecs = swimsecs + bikesecs + runsecs;

  int completehours;
  int completemins;
  int completesecs;

  // 第一步:处理秒的进位
  completesecs = totalsecs % 60; // 保留60以内的最终秒数
  int carryMins = totalsecs / 60; // 计算秒转换为分钟的进位数
  totalmins += carryMins; // 将进位分钟合并到总分钟数

  // 第二步:处理分钟的进位
  completemins = totalmins % 60; // 保留60以内的最终分钟数
  int carryHours = totalmins / 60; // 计算分钟转换为小时的进位数
  totalhours += carryHours; // 将进位小时合并到总小时数

  // 第三步:最终小时数(无需再进位,若需统计天数可继续对24取模/除法)
  completehours = totalhours;

  // 打印转换后的结果
  Serial.print("总时长:");
  Serial.print(completehours);
  Serial.print("小时 ");
  Serial.print(completemins);
  Serial.print("分钟 ");
  Serial.print(completesecs);
  Serial.println("秒");
}

void loop() {
  // 无需循环执行,仅在初始化时计算一次
}

逻辑说明

  • 秒处理:总秒数对60取模得到最终剩余秒数,总秒数除以60得到需要进位到分钟的数值,将其加到总分钟数中。
  • 分钟处理:更新后的总分钟数对60取模得到最终剩余分钟数,总分钟数除以60得到需要进位到小时的数值,将其加到总小时数中。
  • 小时处理:最终的总小时数即为累加值加上分钟的进位数,若需要统计天数,可继续对24执行取模和除法操作。

内容的提问来源于stack exchange,提问作者Ryan Llewellyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 08:22:22