我希望比较当前本地时间和一个固定的时间范围,但我的当前解决方案似乎比我预期的更加困难。
我可以使用
如果我想检查06:12-23:15的范围,问题会变得更加严重,因为我必须检查小时是否等于6,然后分钟是否大于12,然后再检查——嗯嗯嗯... 这很无聊。我可以尝试使用
我可以使用
Local::now()
构建一个chrono::DateTime<Local>
。然后我可以费力地找出now
是否在特定的时间范围内,如下所示:let current_hour = now.hour();
let current_minute = now.minute();
// see if `now` lies between 06:00 and 23:00
current_hour >= 6 && current_hour < 23
// note the inelegance of the syntax and the potential for fencepost errors
如果我想检查06:12-23:15的范围,问题会变得更加严重,因为我必须检查小时是否等于6,然后分钟是否大于12,然后再检查——嗯嗯嗯... 这很无聊。我可以尝试使用
parse_from_rfc2822
进行字符串表示,但是我必须首先发出当前日期,然后编辑当天的时间,然后检查解析错误,现在我又要睡觉了。 我想我可能只是没有正确阅读chrono文档。如果我要实现该库,我将尝试构建一个实现Ord
的TimeOfDay<Local>
数据类型,从而允许惯用范围检查。我认为它已经存在于某个地方,我只是漏掉了它。