历法系统我们一直都在使用,它在国际商务和交流中有着广泛的应用,它是罗马教皇格利高里的历法系统。罗马教皇, 主教, 蒲柏颁布的在基督教领域里使用的历法。它存在两个问题,第一个是这个世界绝大多数不是基督教。第二,基督教历法事实上是基于早期的历法系统(朱利安罗马皇帝的系统),它本身是从古代以及其他的一些历法演变过来的。为了把它推广到世界其他国家和宗教,它包含了很多有趣的东西来吸引人们。这学期我们来看一下法国的历法革命。
法国历法革命(共和历法)是在1793年11月24提出的。原因是为什么一部分人(包括法国人)直到1806年1月还没有听说这套历法系统已将废止了。而且在1871年又从新出现了,但是又一次的不显著死亡。法国历法革命有趣的地方是他极力的使用十进制。
共和国的历法八一年365天或366天分成12个月,每个月30天,再加上另外的5或6天。这些月份是
1,Vendemiaire
2,Brumaire
3,Frimaire
4,Nivose
5,Pluviose
6,Ventose
7,Germinal
8,Floreal
9,Prairial
10,Messido
11,Thermidor
12,Fructidor
这套系统不是把一周分为7天,它把一个月分成3个10天,其中10天的最后一天休息。尽管10天的制度很简单,但是9天工作一天休息的制度不是很流行,然而罗马教皇 Gregory 的工作6天休息一天似乎更流行。
这10天分别叫做:Primidi,Duodi,Tridi,Quartidi,Quintidi,Sextidi,Septidi,Octidi,Nonidi,Decadi.
额外的5或6天(365or366-12*30)接着果月(法国共和历的12月,相当于公历8月18 日到9月16日)的最后一天叫
1,Jour de la vertu (Virtue Day)
2,Jour du genie(Genius Day)
3,Jour du travail(Labour Day)
4,Jour de I’opinion(Reason Day)
5,Jour des recompenses(Rewards Day)
6,Jour de la revolution(Revolution Day)(the leap day)
法国共和历是从1792年9月22实施的。这一天变成了1 Vendemiaire共和历的第一年,(事实上这套历法直到1973年11月24才被介绍)。闰年的新年那一天被定在秋分(出现在9月22在北半球)为了精确,闰年与罗马教皇 Gregory 的历法系统一样每4年一次闰年(百年除了能被400整除的)。
计算闰年开始于法国共和历法20年后但是历法没有计算。法国共和历的前20年里,3,7和11时润年15和20也是 闰年,除了这些以后每4年一次闰年。(包括合适的百年)。
你的任务
作业目的把罗马教皇 Gregory 的历法(即:现在所用的阳历)换成法国共和历用C++程序。你可以用任何C++的class,建造或ADT等
有很多方法去完成作业
1,开始输入阳历
2,基于这些数字,求出自共和历建立以来的天数。
3,基于这些数字,求出自共和历建立以来的月数和年数。
4,最后得出相应的共和历日期
最初的界面提示如下:
Please enter a Gregorian date (dd mm yyyy):
程序输出法国共和历的日期格式:[day][month name][year],例如:6 Nivose 49.因为输入的是阳历,有365或366天,而我们要得出的是共和历,但共和历只有30*12=360天,所以多出的5,或6天我们就用以上给出的共和历提供给我们的那几种名称来取代(例如:Jour du genie).如果输入的阳历在共和历之前(即1792年9月22日之前),那么输出就使用BR(before republic),意思就是共和历前多少日期。如果共和历日期显示在屏幕上,那么程序宣告终止。
以下是测试程序是否正确,它们是阳历的新年(1月1日)在共和历里的日期
year 1: 22 sep 1792
year 5: 22 sep 1796
year 10: 23 sep 1801
year 12 :24 sep 1803