判断一组日期是月度还是每日的最佳方法是什么?

时间:2012-01-09 11:35:00

标签: java date

我想知道什么是最好的方法,给定一个TreeSet of Date对象,告诉这些日期是每天还是每月。请注意,每日日期集不包含周末或银行假日的日期。每月日期集将具有月末日期。这组日期将持续几年。

我现在能想到的唯一方法是从集合中取出前12个日期并检查每个日期的月份。如果一个月连续发现一个月,那么这可能是一组每日日期。如果没有,则可以假设它是一组月度日期。

虽然这似乎应该有效(我想不出它会错过的任何边缘情况)我想知道是否有更优雅的解决方案?我会想象某种数据结构(一棵树?)使用基于月和年的比较器。然后,如果此集合的子树包含多个节点,那么我可以假设它们是每日日期。我不确定这种方式是否能保证额外的代码,或者是否有更好的解决方案。谢谢你能给我的任何帮助。

1 个答案:

答案 0 :(得分:1)

  

我现在能想到的唯一方法是从集合中取出前12个日期并检查每个日期的月份。如果一个月连续发现一个月,那么这可能是一组每日日期。如果没有,则可以假设它是一组月度日期。

这不一定有效。

您可能需要检查集合中的每个日期,以确定日期是星期几还是月末...... 或两者都是!!

当你发现一个不是月末日的工作日,或者反之亦然时,你可以停止,但是防守计划会检查所有这些,如果你已经被给予了错误的投入。

集合是TreeSet

这一事实不会给您带来任何性能上的好处