Bài 32: Ôn tập lập trình Python

Bạn chưa đăng nhập. Vui lòng đăng nhập để hỏi bài
Minh Lệ

Trong các phần mềm bảng tính điện tử, dữ liệu ngày tháng được coi là số ngày tính từ ngày 1-1-1990. Viết chương trình:

- Nhập số tự nhiên n từ bàn phím và tính xem số đó ứng với ngày, tháng, năm nào.

- Nhập thời gian theo khuôn dạng ngày - tháng - năm (ví dụ 8-10-2021), tính số ngày ứng với ngày này theo phần mềm bảng tính điện tử.

Time line
3 tháng 9 2023 lúc 12:06

Hướng dẫn:

Chương trình 1. Nhập số tự nhiên từ bàn phím và tính xem đó là ngày tháng năm nào.

month = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]

def nhuan(year):

      if year % 400 == 0 or (year % 4 == 0 and year%100 != 0):

            return True

      else:

            return False

def day_of_year(year):

      if nhuan(year):

           return 366

      else:

          return 365

def hople(year,mm, day) :

      if nhuan(year):

          month[1] = 29

      if mm < 1 or mm > 12:

          return False

      if day < 1 or day > month[mm-1]:

          return False

      return True

def tinh_nam(d):

      year = 1900

      n_day = day_of_year(year)

      day = d

      while n_day <= d:

          day = d - n_day

          year = year + 1

          n_day = n_day + day of_year(year)

          if day == 0:

               year = year - 1

              day = day_of_year(year)

       return year, đay

def tinh_thang(year, day) :

       if nhuan(year) :

             month[1] = 29

      mm= 0

      n_day = month[mm]

      dd = day

      while n_day <= day anđ mm < 11:

           dd = day - n_day

           mm = mm + 1

           n_day = n_day + month[mm]

           if dd == 0:

                mm = mm - 1

                dd = month[mm]

      return mm+1,dd

# Chương trình chính

d = int(input( "Nhập số ngày tính từ 1/1/1990: "))

year,day = tinh_nam(d)

mm,dd = tinh thang(year, day)

print( "Đó là ngày", dd, "tháng", mm, "năm" , year)