2013-07-22 5 views
0

Как отобразить текущее предложение на английском языке в командной строке? У меня есть следующие коды ниже этого дисплея в цифре.Python Текущее время на русском языке Предложение

m = datetime.datetime.now().strftime('%I %M %S') 
print 'The time is ' + str(int(m[0:2])) + ' ' + str(int(m[3:5]))) 

Примеры, которые я хочу видеть результат является:

  • время составляет семь сорок 5 вечера
  • Время одиннадцать (о) шесть часов вечера.
  • время составляет 12 утра

ответ

1

Вот скрипт, который я приспособился, чтобы соответствовать вашим требованиям:

import datetime as dt 

d = {0: "(oh)", 
    1: "one", 
    2: "two", 
    3: "three", 
    4: "four", 
    5: "five", 
    6: "six", 
    7: "seven", 
    8: "eight", 
    9: "nine", 
    10: "ten", 
    11: "eleven", 
    12: "twelve", 
    13: "thirteen", 
    14: "fourteen", 
    15: "fifteen", 
    16: "sixteen", 
    17: "seventeen", 
    18: "eighteen", 
    19: "nineteen", 
    20: "twenty", 
    30: "thirty", 
    40: "forty", 
    50: "fifty", 
    60: "sixty"} 

def display_time(t): 
    Hour = d[int(t[0:2])] if t[0:2] != "00" else d[12] 
    Suffix = 'a.m.' if d[int(t[7:9])] == Hour else 'p.m.' 

    if t[3] == "0": 
     if t[4] == "0": 
      Minute = "" 
     else: 
      Minute = d[0] + " " + d[int(t[4])] 
    else: 
     Minute = d[int(t[3])*10] + '-' + d[int(t[4])] 
    print 'The time is', Hour, Minute, Suffix 

display_time(dt.datetime.now().strftime('%I %M %H')) 
display_time("07 45 19") 
display_time("11 06 23") 
display_time("00 00 00") 

Несколько строк в нижней части являются тестовыми случаями, которые вы предложили. выход следующий:

Время шесть (о) три часа.

Время в семь сорок пять.

Время одиннадцать (о) шесть часов вечера.

Время 12 часов.

+0

спасибо! – leon