JAVA如何实现以下的功能。

来源:百度知道 编辑:UC知道 时间:2024/05/25 14:34:50
输入任意一个数(可以很大),将这个数作为从公元一年一月一日起经过的天数。比如说,输入400,则表示从公元一年一月一日起经过了400天。
问题如下:
求输入数的这一天是几年几月几日、星期几。
假设公元一年一月一日是星期一。
大家帮忙想想怎么编程,我头都破了~~~

我先告诉你一个特别注意项
1582-10-5至10月14的特殊注意它们的不存在
也就是说没有1582年10-5至10-14号
而且不同国家地区各自法律中删除这10天的时期是不一致的
所以你要做一个兼顾各国历史的万年历是比较难的

在GregorianCalendar类中,也有如下解释说明
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。

GregorianCalendar 是一种混合日历,在单一间断性的支持下同时支持儒略历和格里高利历系统,在默认情况下,它对应格里高利日历创立时的格里高利历日期(某些国家/地区是在 1582 年 10 月 15 日创立,在其他国家/地区要晚一些)。可由调用方通过调用 setGregorianChange() 来更改起始日期。

历史上,在那些首先采用格里高利历的国家/地区中,1582 年 10 月 4 日(儒略历)之后就是 1582 年 10 月 15 日(格里高利历)。此日历正确地模拟了这些变化。在开始格里高利历之前,GregorianCalendar 实现的是儒略历。格里高利历和儒略历之间的惟一区别就是闰年规则。儒略历指定每 4 年就为闰年,而格里高利历则忽略不鼙?400 整除的世纪年。

GregorianCalendar 可实现预期的 格里高利历和儒略历。也就是说,可以通过在时间上无限地向后或向前外推当前规则来计算日期。因此,对于所有的年份,都可以使用 GregorianCalendar 来生成有意义并且一致的结果。但是,采用现代儒略历规则时,使用 GregorianCalendar 得到的日期只在历史上从公元 4 年 3 月 1 日之后是准确的。在此日期之前,闰年规则的应用没有规则性,在 45 BC 之前,甚至不存在儒略历。

在格里高利历创立以前,新年是 3 月 25 日。为了避免混淆,此日历始终使用 1 月 1 日为新年。如果想要格里高利历转换之前并且处于 1 月 1 日和 3 月 24 日之间的日期,则可以进行手动调整。

为 WEEK_OF_YEAR 字段所计