我最近将自己以及我的妻子和孩子的年龄相加,并意识到在不久的将来,我们的年龄总和将恰好达到100岁。
挑战
对于由合并的(总计)年龄和出生日期列表组成的输入,请输出所有合并年龄加起来等于给定总数的日期。
- 输入的合并年龄(以年为单位)将为正整数
- 输入的出生日期列表将是日期列表(无论哪种格式对您的语言来说都是方便的),日期列表必须包含日,月和年的数字表示形式。自特定纪元以来的天数,该数值不可接受。您可以假设输入日期列表按时间顺序排序。
- 输出将是单个日期,格式与输入日期相同
- 就合并年龄而言,一年即被视为365.25天
- 对于某些输入,将不可能找到所有出生日期之后的日期,如果它们都加起来等于合计年龄。例如,考虑两个相隔20年的出生日期,但我们希望相加10年。在这种情况下,输出将是较早出生日期的10岁生日。换句话说,对于该人的出生日期之前的所有日期,其年龄均为0
- 输出将是组合年龄加起来至少等于输入年龄的第一个日期
- 您可以使用内置的日期时间功能
- 您必须支持可追溯到1970/01/01的日期。
例子
在这里,我以YYYY / MM / DD格式给出所有日期,但是您可以选择任何格式。
Input Output
10 2000/01/01 2010/01/01
100 1975/03/05,1978/07/23,2008/11/12,2012/12/20 2018/11/22
100 1975/03/06,1978/07/23,2008/11/12,2012/12/20 2018/11/23
100 1975/03/09,1978/07/23,2008/11/12,2012/12/20 2018/11/23
100 1975/03/10,1978/07/23,2008/11/12,2012/12/20 2018/11/24
3 1990/08/01,1995/07/02 1993/08/01
50 1975/03/05,1978/07/23,2008/11/12,2012/12/20 2001/11/13
请注意,在最后两个示例中,根据规则5,输出日期位于输入日期的范围内。
1
@TimmyD。规则7是一条可能的规则,因此如果您不想这样做,则不必遵循它。我怀疑日期时间函数对于解析输入日期和格式化输出日期很有用。YMMV。
—
Digital Trauma 2015年
规则7是五月规则。可以安全地忽略本月(以及下半年)。
—
马丁·恩德
实际上,我认为一个家庭会在每个生日时进行检查,将年份作为整数进行计数,而不是试图将天数相加(使问题复杂化为0.25)。
—
edc65 2015年
@ edc65谁让现实阻碍了良好的PPCG挑战?;-)
—
Digital Trauma