0

我想写一个时间格式化程序,time_format(hours, minutes)它需要一天中的时间,以小时和分钟表示,四舍五入到最接近的 5 分钟,并用英文单词表示。

我需要编写一个格式化输入的方法,例如

"9,1"

进入“九点”

time_format(9, 1) returns "nine o'clock"
time_format(9, 5) returns "five after nine"
time_format(9, 13) returns "quarter after nine"
time_format(9, 9) returns "ten after nine"
time_format(9, 20) returns "twenty after nine"
time_format(9, 24) returns "twenty five after nine"
time_format(9, 30) returns "half past nine"
time_format(9, 36) returns "twenty five to ten"
time_format(9, 38) returns "twenty to ten"
time_format(9, 45) returns "quarter to ten"
time_format(9, 50) returns "ten to ten"
time_format(9, 56) returns "five to ten"
time_format(12, 00) returns "noon"
time_format(15, 20) returns "twenty after three"
time_format(23, 45) returns "a quarter to midnight"

知道我该怎么做吗?我一直在查看日期对象,但它没有给我提供像 20 这样的数字并获取它的文字文本的方法。

4

1 回答 1

0

好吧,现在,你问了一个想法,所以这是我在正确方向上的推动。我认为您很擅长使用字典。但是对于你如何构建你的输出,第一个数字还是第二个数字更重要的是什么?

第二!

但是字典不适用于第二种情况,如果 elif 链,则需要。这是我用来处理第二个值的两个代码片段。从那里应该很容易,我希望!

def time_eval_thingy ( a, b ):
b = int( b ) # probably not needed, just to be sure
if b < 5:
  outputstring = "SPECIAL"
elif b < 10:
  outputstring = "5 after "

...
elif b < 50
  outputstring = "Quarter until "
  a += 1 # a is the hour, and increasing it here will make the hour appear higher in the dictionary call that occurs after the time when we decide the signifcance of b

我应该补充一点,稍后我检查输出是否为“SPECIAL”,如果是,我将“O'clock”添加到末尾以获取不是 12 或 00 的值(将整个字符串转换为中午或午夜)

于 2013-09-21T00:17:18.427 回答