我试图采取的开始日期和结束日期,并通过此日期范围内进行迭代,并确定周末的数量/节假日呈现Lua的遍历日期范围
是否有可能建立一个包含日期表在这个范围内?然后,我可以确定这张桌子里的周末,并建立我的反击。这是正确的方法还是有更简单的方法来遍历范围?
function countWeekends(startDate, endDate)
dateRange = {}
for i = startDate, endDate
do dateRange[i] = {}
我试图采取的开始日期和结束日期,并通过此日期范围内进行迭代,并确定周末的数量/节假日呈现Lua的遍历日期范围
是否有可能建立一个包含日期表在这个范围内?然后,我可以确定这张桌子里的周末,并建立我的反击。这是正确的方法还是有更简单的方法来遍历范围?
function countWeekends(startDate, endDate)
dateRange = {}
for i = startDate, endDate
do dateRange[i] = {}
对于周末日的数量,只要您可以可靠地确定开始日的一周中的哪一天,计算就很简单。既然你没有问如何确定特定开始日期的星期几,我会假设你已经有办法做到这一点。如果你没有,并且你找不到一个Lua库,可以考虑找一个可靠的C或C++库(比如boost :: date_time)并且导出它的一些函数(或者甚至只是你自己调用的一个函数这些库,Lua不需要访问除你的库之外的库)。
您还需要一种可靠的方法来确定哪些年份具有2月29日,但这又不是您的问题,所以如果您可以这样做,您可以迭代,如果您的迭代跨越2月28日,您知道要添加那些年的某一天。
关于假期,这将是棘手,因为许多是基于像“第十个月第二个星期五”的规则。 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。
我想找一个专门的日期处理库;这是一个非常平凡的主题,必须这样对待。 –
尝试https://github.com/Tieske/date。 – lhf