Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 시간 분 시간을 텍스트 형식으로 변환하는 프로그램

<시간/>

시간과 분 두 개의 입력이 있다고 가정합니다. 시간을 텍스트 형식으로 표시해야 합니다. 이것은 다음과 같습니다 -

  • 8:00 :8시
  • 8:01 :8시 1분
  • 8:10 :8시 10분
  • 8:15 :8시 4분
  • 8:30 :8시 반
  • 8:40 :20분 ~ 9시
  • 8:45 :9시까지
  • 8:47 :13분에서 9시까지
  • 8:28 :8시 28분

따라서 입력이 h =9, m =42와 같으면 출력은 18분에서 10분이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • text:=다음과 같은 30가지 다른 숫자 값에 대한 텍스트를 포함하는 목록:["one", "two", "three", "four", "five", "six", "seven", "eight" ,"아홉","열", "열한","열둘", "열셋", "열넷", "사분의 일", "열여섯","열일곱", "열여덟","열아홉", "스물", " 스물하나", "스물둘", "스물셋", "스물넷", "스물다섯", "스물여섯", "스물일곱", "스물여덟", "스물- 아홉", "반"]
  • op:=빈 문자열
  • m이 0과 같으면
    • op :=text[h - 1] "시" 연결
  • 그렇지 않으면 m이 30과 같을 때
    • op :=text[m - 1] "과거" 연결 text[h - 1] 연결
  • 그렇지 않으면 m이 1과 같을 때
    • op :=text[m - 1] concatenate " 분 과거 " concatenate text[h - 1]
  • 그렇지 않으면 m이 15와 같을 때
    • op :=text[m - 1] "과거" 연결 text[h - 1] 연결
  • 그렇지 않으면 m − 30이 0이 아닌 경우
    • op :=text[m - 1] concatenate " 분 과거 " concatenate text[h - 1]
  • 그렇지 않으면 m이 45와 같을 때
    • op :="쿼터를 " 연결 텍스트[h]
  • 그렇지 않으면
    • op :=text[(60 - m) -1] "분을 " 연결하여 텍스트를 연결[h]
  • 반환 작업

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(h, m):
   text=["one", "two", "three", "four", "five", "six", "seven", "eight","nine","ten", "eleven", "twelve", "thirteen", "fourteen", "quarter", "sixteen","seventeen", "eighteen", "nineteen", "twenty", "twenty-one","twenty-two", "twenty-three", "twenty-four", "twentyfive"," twenty-six", "twenty-seven", "twenty-eight", "twenty-nine", "half"]

   op=""
   if (m == 0):
      op = text[h - 1] + " o' clock"
   elif (m == 30):
      op = text[m - 1]+ " past " + text[h - 1]
   elif (m == 1):
      op = text[m - 1] + " minute past " + text[h - 1]
   elif (m == 15):
      op = text[m - 1]+ " past " + text[h - 1]
   elif (m < 30):
      op = text[m - 1] + " minutes past " + text[h - 1]
   elif (m==45):
      op = "quarter to " + text[h]
   else:
      op = text[(60 - m)-1] + " minutes to " + text[h]
   return op

h = 9
m = 42
print(solve(h, m))

입력

9, 42

출력

eighteen minutes to ten