Câu hỏi:

12/07/2024 1,991

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ử.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Để giải quyết bài toán một cách triệt để và bằng phép tính thủ công sẽ khá khó khăn, trong Python cung cấp một số thư viện cũng như hàm có sẵn, giúp cho quá trình giải bài toán thuận tiện và dễ dàng hơn.

Tham khảo đoạn code sau:

from datetime import date

from datetime import timedelta

 

dateStandard = date(1990, 1, 1)

def calNumberDay(date1):

    return (date1 - dateStandard).days

def NumberToDate(number):

    return dateStandard + timedelta(days=number)

d=int(input("Nhap số ngày"))

a=input("Nhập thời gian").split(" ")

a[0]=int(a[0])

a[1]=int(a[1])

a[2]=int(a[2])

print(NumberToDate(number=32))

print(calNumberDay(date(a[2],a[1],a[0])))

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  (ảnh 1)

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Chương trình:

def Sosanhxau(name1, name2):

    name1 = name1.split()

    name2 = name2.split()

    i = 1

    while i <= len(name1) and i <= len(name2):

        if name1[len(name1)-i] > name2[len(name2)-i]:

            return True

        elif(name1[len(name1)-i]<name2[len(name2)-i]):

            return False

        else:

            i += 1

    return False

def Sapxep(A,n):

    for i in range(n):

        minimum = i

        for j in range(i + 1,n):                

            if Sosanhxau(A[j], A[minimum]) == False :

                minimum = j

        A[minimum], A[i] = A[i], A[minimum]

    return A

 

n=int(input("Nhập số lượng học sinh của lớp"))

A=[]

for i in range(0,n):

    s=input()

    A.append(s)

A=Sapxep(A,n)

print("Danh sách lớp theo tên đã sắp xếp là:")

print(A)

Lời giải

import re

def Chuyendoi(s):

    s = re.sub(r'[àáạảãâầấậẩẫăằắặẳẵ]', 'a', s)

    s = re.sub(r'[ÀÁẠẢÃĂẰẮẶẲẴÂẦẤẬẨẪ]', 'A', s)

    s = re.sub(r'[èéẹẻẽêềếệểễ]', 'e', s)

    s = re.sub(r'[ÈÉẸẺẼÊỀẾỆỂỄ]', 'E', s)

    s = re.sub(r'[òóọỏõôồốộổỗơờớợởỡ]', 'o', s)

    s = re.sub(r'[ÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠ]', 'O', s)

    s = re.sub(r'[ìíịỉĩ]', 'i', s)

    s = re.sub(r'[ÌÍỊỈĨ]', 'I', s)

    s = re.sub(r'[ùúụủũưừứựửữ]', 'u', s)

    s = re.sub(r'[ƯỪỨỰỬỮÙÚỤỦŨ]', 'U', s)

    s = re.sub(r'[ỳýỵỷỹ]', 'y', s)

    s = re.sub(r'[ỲÝỴỶỸ]', 'Y', s)

    s = re.sub(r'[Đ]', 'D', s)

    s = re.sub(r'[đ]', 'd', s)

    return s

def Sosanhxau(name1, name2):

    name1=Chuyendoi(name1)

    name2=Chuyendoi(name2)

    name1 = name1.split()

    name2 = name2.split()

    i = 1

    while i <= len(name1) and i <= len(name2):

        if name1[len(name1)-i] > name2[len(name2)-i]:

            return True

        elif(name1[len(name1)-i]<name2[len(name2)-i]):

            return False

        else:

            i += 1

    return False

def Sapxep(A,n):

    for i in range(n):

        minimum = i

        for j in range(i + 1,n):               

            if Sosanhxau(A[j], A[minimum]) == False :

                minimum = j

        A[minimum], A[i] = A[i], A[minimum]

    return A

 

n=int(input("Nhập số lượng học sinh của lớp"))

A=[]

for i in range(0,n):

    s=input()

    A.append(s)

A=Sapxep(A,n)

print("Danh sách lớp theo tên đã sắp xếp là:")

print(A)