【发布时间】:2021-09-17 03:50:24
【问题描述】:
我想在 Arduino 中实现这个功能
uint32_t GetSeconds(int hour_now, int minutes_now, int seconds_now,
int hour_future, int minutes_future, int seconds_future);
类似这样,但不使用相关日期:
uint32_t future = DateTime(2021, 1, 1, 16, 0, 0).unixtime();
DateTime now = rtc.now();
uint32_t timestamp = now.unixtime();
uint32_t seconds_to_sleep = future - timestamp;
【问题讨论】:
-
全部转换为秒:
uint32_t now = hour_now * 3600 + minutes_now * 60 + seconds_now。对未来做同样的事情并减去。请注意,如果未来时间超过午夜,这将不起作用。为此,您将需要一些额外的代码。 -
谢谢你,约翰尼,但“请注意,如果未来时间超过午夜,这将不起作用”是问题所在,这就是日期(数字)的来源......
-
如果未来时间超过 24 小时,此功能将不起作用,需要一个日期参数。是否保证少于 24 小时?
标签: c++ arduino arduino-esp8266 arduino-c++ arduino-esp32