Arduino,将分钟转换为 hh mm sec

Arduino, Convert minutes to hh mm sec

你能帮忙吗:

我在Arduino中有一个很长的代码来控制一个水循环系统,但是我可以计算出结束操作的剩余时间,以分钟为单位。例如,3780.67 分钟。 请您编写代码将这些分钟转换为以小时、分钟、秒显示。

谢谢。

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;

希望这就是您要找的。

Arduino 毫秒到小时

如果你想在使用 Arduino millis 作为定时器时达到几个小时,你需要做更多的除法:

 Minutes = ( millis()/1000 ) / 60;

 Hours = ( ( millis()/1000 ) / 60 ) / 60;

Arduino 毫秒到天

完整的时间值集在这里:

 Days = Hours/24;

 Hours = Minutes / 60;

 Minutes = Seconds / 60;

 Seconds = millis()/1000;

可变天数的最大值只能为 49.7 天(millis() 的翻转)。 注意:自营业时间起。分钟、秒和天的最大值只能低于 255,您可以对上述每个数量使用类型 uint8_t。 uint8_t 与 "unsigned char" 相同。 这里有一个启用时钟显示的功能:

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);

EDIT 特别需要用float(?)作为时间输入

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);