我对任何可以执行以下操作的库感兴趣:
我有一个时间范围:比如说 1995 年到 2010 年,我可以以某种方式对其进行分类,比如说“互联网时代”。
然后我希望能够进一步打破它,比如将 2001-2010 年称为“谷歌时代”。
理想情况下,我希望时间线以某种时间跨度对象列表(或具有开始和结束日期的对象)的形式存在,每个时代都有一个。所以在这两个添加操作之后,它看起来像:
1995-2000 - 互联网时代(结束日期被截断以免重叠)
2001-2010 - 谷歌时代
我建议您查看 joda-time 库,特别是 Duration 和 Interval 类
我会说(通常)Joda Time,你应该在网页上查看他们的关键概念,看看一个或多个组合是否适合你的需求。
具有开始和结束时间的对象的简单集合“事件”(也许使用 Joda?)和描述应该是一个好的开始。
将它们放入按开始时间对它们进行排序的时间轴容器中,然后运行事件应该以您需要的任何方式为您提供所需的数据。
有时解决方案非常简单,以至于为它们编写通用库实际上会损害您的解决方案——它只会掩盖您的存储结构,让您使用非最佳格式,并且根本不会真正隐藏太多代码。