【发布时间】:2014-12-02 10:45:16
【问题描述】:
我要做的是,给定格式为 YYYY-MM-DD 的开始和结束日期,编写一个函数,该函数将返回该格式的日期键/值对,表示中间月份的开始和结束需要注意的是,第一对将以任何开始日期开始,最后一对将以任何结束日期结束。虽然我认为 Date::Manip 或 Date::Calc 可以完成这项工作,但我一直无法找到所需的解决方案。
例如,如果调用看起来像:
&get_date_pairs('2014-08-18', '2014-10-17');
那么函数返回的哈希值如下:
%hash = (
2014-08-18 => 2014-08-31,
2014-09-01 => 2014-09-30,
2014-10-01 => 2014-10-17,
);
【问题讨论】:
-
这个应用程序是什么?这是你可以很容易地硬编码的东西——设置每月天数的数据结构,等等——但是如果有一些更大的问题要通过这个来解决,那么做这些事情可能更合适一种不同的方式。顺便说一句,哈希结构有点奇怪......对于这种数据,数组数组可能更直观。
-
旁注:一般来说,don't call functions with an ampersand (
&foo) 除非你有充分的理由这样做。 -
我正在使用一个 API 来获取非常特定范围内所有数据的报告,并且该 API 一次只会返回几个月(或一个月的一小部分)。数组数组就可以了,我只需要以某种易于解析的格式返回成对的开始/结束日期。