c069. 00602 - What Day Is It?
標籤 :
通過比率 : 158人/180人 ( 88% ) [非即時]
評分方式:
Tolerant

最近更新 : 2012-11-12 22:28

內容

現行的曆法是從羅馬人演變而來的。凱撒大帝編纂了一套曆法,後人稱之為儒略曆 (Julian calendar)。在這曆法中,除了四、六、九、及十一月有30天,二月在平年有28年,在閏年有29天以外,其他的月份都是31天。再者,在這曆法中,每四年有一個閏年。這導因於古代羅馬的星象學家算出一年有365.25天,因此每隔四年就要加一天以保持曆法和季節的一致。於是,他們就在四的倍數的年份多加了一天 (二月29日)。 

儒略法:

四的倍數的年份均為閏年,這年會多一天 (二月29日)。

在1582年,教宗格勒哥里 (Gregory) 的星象學家發現一年並不是365.25天,而是比較接近365.2425天。因此,閏年的規則便修正如下: 

格瑞哥里法:

除了不是400的倍數的100的倍數以外,四的倍數的年份均為閏年。

為了要彌補截至當時季節和日曆已產生的誤差,當時的日曆便往前挪移了10天:1582年10月4日的第二天為10月15日。

英格蘭和它的帝國 (包括美國) 一直到1752年才改用格瑞哥里曆,當年的9月2日的第二天為9月14日。(未同步採用新曆乃肇因於亨利八世和教宗的惡劣關係。)

寫一個程式可以依美國當時的曆法來轉換日期,並印出星期幾。

Miguel A. Revilla
1999-03-24 郭兆平譯 2005-10-26
輸入說明

程式的輸入為一連串的大於0的正整數,每一行有3個整數,代表一個日期。日期的格式為 "月 日 年",其中月份以1 (表示一月) 到 12 (表示十二月) 的數字來代表,日則是一個1到33間的數字,而年則為正數。


輸出說明

程式的輸出則為依範例格式所輸入的日期和那天星期幾。不正確的日期或依美國當時的曆法不存在的日期則應產生一個錯誤訊息告知日期不正確。輸入的結束會有三個0。 請參考範例輸出。


範例輸入 #1
1 1 1
10 4 1582
10 5 1582
1 1 2000
7 4 1998
2 11 1732
9 2 1752
9 3 1752
9 14 1752
4 33 1997
11 15 1997
12 9 2005
0 0 0
範例輸出 #1
January 1, 1 is a Saturday
October 4, 1582 is a Thursday
October 5, 1582 is a Friday
January 1, 2000 is a Saturday
July 4, 1998 is a Saturday
February 11, 1732 is a Friday
September 2, 1752 is a Wednesday
9/3/1752 is an invalid date.
September 14, 1752 is a Thursday
4/33/1997 is an invalid date.
November 15, 1997 is a Saturday
December 9, 2005 is a Friday
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (100%): 1.0s , <1K
提示 :
* 中文翻譯:Lucky 貓
標籤:
出處:
UVa602

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」