Lua 遍历日期范围

我正在尝试获取起始日期和结束日期,并遍历这个日期范围,识别周末/节假日的天数。

是否可以建立一个包含此范围内日期的表呢?然后我可以在这个表中识别周末并构建我的计数器。这是正确的方法,还是有更容易遍历此范围的方法?

function countWeekends(startDate, endDate)

dateRange = {}
for i = startDate, endDate
do dateRange[i] = {}
点赞
用户869951
用户869951

关于周末天数的计算,只要您可以可靠地确定起始日是星期几,计算就很简单。因为您没有问如何确定特定日期的星期几,所以我假设您已经有一种方法来做到这一点。如果您没有,而且找不到 Lua 库,考虑找到一个可靠的 C 或 C++ 库(如 boost::date_time)并导出其中的一些函数(甚至只需一个您自己的函数调用这些库,Lua 不需要访问库只需要访问您的函数)。

您还需要一种可靠的方法来确定哪些年有 2 月 29 日,但这也不是您的问题,所以如果您可以做到这一点,您可以遍历并且如果您的遍历跨越了 2 月 28 日,您知道要为那些年添加一天。

关于假期,那就会棘手,因为许多假期都基于规则,如“第 10 个月的第二个星期五”。 Boost::date_time 库可能可以处理其中的大部分,同样您将创建一个 C/C++ DLL 扩展到 Lua。

或者,可以完全绕过迭代并使用在线计算器,如 http://www.timeanddate.com/date/workdays.html?y1=2014&m2=1&d2=7&y2=2014&m2=1&d2=7,以提交请求(您必须寻找适当的 Lua 库来完成此操作),或者查看使用的 javascript 并转换为 Lua。

2014-01-07 20:40:21