Trong các phần mềm bảng tính điện tử

Câu 32.5 trang 66 SBT Tin học 10: 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.

Lời giải:

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, day

def tinh_thang(year, day):

 if nhuan(year):

  month[1] = 29

 mm = 0

 n_day = month[mm]

 dd = day

 while n_day <= day and 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)

Xem thêm các bài giải sách bài tập Tin học lớp 10 Kết nối tri thức hay, ngắn gọn khác:

Xem thêm các tài liệu học tốt lớp 10 hay khác:


Giải bài tập lớp 10 Kết nối tri thức khác