X

SBT Tin học 10 Kết nối tri thức

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


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.

Giải sách bài tập Tin học 10 Bài 32: Ôn tập lập trình Python

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: