#859. wbt的天文学之梦

wbt的天文学之梦

题目描述

没错,这题的主角是wbt,wbt最近工作之余爱上了天文学,开始学习天文学知识,希望有一天如果自己变成迪迦的时候,能找到去光之国的路。 没错,这题就是关于天文学的一个小知识,为了简便计算,天文学家们使用儒略日来表达时间。所谓儒略日,其定义为从​公元前 4713 年 1 月 1 日正午 12 点到此后某一时刻间所经过的天数​,不满一天者用小数表达。若利用这一天文学历法,则每一个时刻都将被均匀的映射到数轴上,从而得以很方便的计算它们的差值。wbt想要看看你是否跟他一样,有着变身迪迦的可能性,他决定考考你,给你一个儒略日,希望你能回答出相应公历的日期,当然,善良的wbt怎么可能为难人呢?wbt给定的儒略日一定是整数(亚撒西~~)。 以下为本题可能需要用到的历史知识扩展

  1. 我们现行的公历为格里高利历,它是在公元 1582 年由教皇格里高利十三世在原有的儒略历的基础上修改得到的(注:儒略历与儒略日并无直接关系)。
  2. 公元 1582 年 10 月 15 日(含)以后:适用格里高利历,每年一月 31 天、 二月 28 天或 29 天、三月 31 天、四月 30 天、五月 31 天、六月 30 天、七月 31 天、八月 31 天、九月 30 天、十月 31 天、十一月 30 天、十二月 31 天。其中,闰年的二月为 29 天,平年为 28 天。当年份是 400 的倍数,或日期年份是 4 的倍数但不是 100 的倍数时,该年为闰年。
  3. 公元1582 年 10 月 5 日(含)至 10 月 14 日(含):不存在,这些日期被删除,该年 10 月 4 日之后为 10 月 15 日。
  4. 公元1582 年 10 月 4 日(含)以前:适用儒略历,每月天数与格里高利历相同,但只要年份是 4 的倍数就是闰年
  5. 虽然儒略历于公元前 45 年才开始实行,且初期经过若干次调整,但今天人类习惯于按照儒略历最终的规则反推一切 1582 年 10 月 4 日之前的时间。注意,​公元零年并不存在​,即公元前 1 年的下一年是公元 1 年。因此公元前 1 年、前 5 年、前 9 年、前 13 年……以此类推的年份应视为闰年。

输入

第一行一个整数 Q,表示询问的组数。 接下来 Q 行,每行一个非负整数 r,表示一个儒略日。

输出

对于每一个儒略日 r,输出一行表示日期的字符串 s。共计 Q 行。 s 的格式如下:

  1. 若年份为公元后,输出格式为 Day Month Year。其中日(Day)、月(Month)、年(Year)均不含前导零,中间用一个空格隔开。例如:公元 2022 年 11 月 19 日正午 12 点,输出为 19 11 2022
  2. 若年份为公元前,输出格式为 Day Month Year BC。其中年(Year)输出该年份的数值,其余与公元后相同。例如:公元前 841 年 2 月 1 日正午 12 点,输出为 1 2 841 BC

样例

3
10
100
1000
11 1 4713 BC
10 4 4713 BC
27 9 4711 BC
3
2000000
3000000
4000000
14 9 763
15 8 3501
12 7 6239

数据范围

对于所有的数据,询问次数均不会超过1e5,答案年份均不会超过1e9