Lua迭代日期范围

时间:2014-01-07 17:44:20

标签: date loops lua

我正在尝试获取开始日期和结束日期,并遍历此日期范围并确定周末/假期的数量

是否可以构建包含此范围内日期的表格?然后我可以在这个表格中找出周末,然后建立我的计数器。这是正确的方法还是有更简单的方法来迭代范围?

function countWeekends(startDate, endDate)

    dateRange = {}
    for i = startDate, endDate
    do dateRange[i] = {}

1 个答案:

答案 0 :(得分:1)

对于周末天数,只要您可以可靠地确定开始日期的哪一天,计算就很简单。由于您没有询问如何确定特定开始日期的星期几,我将假设您已经有办法做到这一点。如果你不这样做,并且你找不到一个Lua库,可以考虑找一个可靠的C或C ++库(比如boost :: date_time)并导出它的一些函数(或者甚至只是你自己调用的一个函数)那些库,Lua不需要访问除你的lib之外的库)。

你还需要一种可靠的方法来确定哪些年份在2月29日,但这又不是你的问题所以如果你能做到这一点,你可以迭代,如果你的迭代越过2月28日,你知道要添加一个这些年的一天。

关于假期,那个假期会很棘手,因为许多都是基于“第10个月的第二个星期五”等规则。 boost :: date_time lib可能可以处理其中的大部分,再次为Lua创建一个C / C ++ DLL扩展。

或者,完全绕过迭代并使用像http://www.timeanddate.com/date/workdays.html?y1=2014&m2=1&d2=7&y2=2014&m2=1&d2=7这样的在线计算器来提交请求(你必须寻找合适的Lua库来执行此操作)或查看那里使用的javascript并转换为Lua。 / p>