你能帮我一下吗?
我有一个很长的代码在Arduino控制一个水循环系统,但是,我可以计算剩余的时间,以结束操作在几分钟内。例如,3780.67分钟。请您写一段代码来转换这些分钟,以便在几小时、几分钟、几秒内显示。
谢谢。
发布于 2020-04-07 10:58:42
float minutes_total = 63.5; // example data
int hours = minutes_total / 60;
int minutes = minutes_total - (hours * 60);
int seconds = (minutes_total - (hours * 60) - minutes) * 60;
希望这就是你要找的。
发布于 2020-04-07 11:04:39
Arduino millis至小时
如果您想在使用Arduino millis作为计时器时达到几个小时,则需要进行更多的除法:
Minutes = ( millis()/1000 ) / 60;
Hours = ( ( millis()/1000 ) / 60 ) / 60;
Arduino millis致数天
完整的时间值集中在这里:
Days = Hours/24;
Hours = Minutes / 60;
Minutes = Seconds / 60;
Seconds = millis()/1000;
变量天数的最大值只能为49.7天( millis()的滚动)。注:自小时起。分钟、秒和天的最大值只能在255以下,您可以对上述每个数量使用uint8_t类型。uint8_t与“无符号字符”相同。这里有一个启用时钟显示的函数:
unsigned long Now = millis()/1000;
// we use modulo to split the parts
int Seconds = Now%60;
int Minutes = (Now/60)%60;
int Hours = (Now/3600)%24;
int Days = (Now/3600*24);
String time = Days + "-" + Hours + ":" + Minutes + ":" + Seconds ;
Serial.println(time);
编辑特殊需要使用浮点(?)作为时间输入
float time = 723.5;
int Seconds = 60 * (time - (int)time + 0.00005); // rounding for extraction needed
// we use modulo to split the parts and int casting to extract integer part
int Minutes = (int)(time )%60; // we cast float to int
int Hours = ((int)time /60)%24;
int Days = ((int)time /60*24);
String timeDisplay = Days + "-" + Hours + ":" + Minutes + ":" + Seconds ;
Serial.println(timeDisplay);
https://stackoverflow.com/questions/61077963
复制相似问题