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);
你能帮忙吗:
我在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);