Hướng dẫn get last week date in python - nhận ngày tuần trước bằng python

6

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang cố gắng để có được ngày của tuần trước với Python.

Nếu ngày là: 10 tháng 10 năm 2014 có nghĩa là

Nó nên được in

10 OCT 2014, 09 OCT 2014, 08 OCT 2014, 07 OCT 2014, 06 OCT 2014, 05 OCT 2014, 04 OCT 2014

Tôi đã thử:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates

Tôi nhận được lỗi này:

exceptions.AttributeError: 'unicode' object has no attribute 'weekday'

Hướng dẫn get last week date in python - nhận ngày tuần trước bằng python

Sven

1432 Huy hiệu bạc17 Huy hiệu đồng2 silver badges17 bronze badges

Đã hỏi ngày 12 tháng 2 năm 2015 lúc 13:22Feb 12, 2015 at 13:22

Hướng dẫn get last week date in python - nhận ngày tuần trước bằng python

2

Câu hỏi và thuật toán của bạn dường như không tương ứng. Đây có phải là những gì bạn đang theo đuổi?

from datetime import date
from datetime import timedelta
today = date(2014, 10, 10) # or you can do today = date.today() for today's date

for i in range(0,7):
    print (today - timedelta(days=i))

Ruzihm

Huy hiệu vàng 19.2K44 gold badges35 silver badges46 bronze badges

Đã trả lời ngày 12 tháng 2 năm 2015 lúc 13:47Feb 12, 2015 at 13:47

MarkgmarkgMarkG

6274 Huy hiệu bạc10 Huy hiệu Đồng4 silver badges10 bronze badges

0

@Markg đánh vào đầu nhưng nếu bạn đang tìm kiếm để có được đầu ra chính xác như đã hỏi điều này sẽ hoạt động:

import datetime

today = '10 OCT 2014'

dates = [datetime.datetime.strptime(today, '%d %b %Y') - datetime.timedelta(days=i) for i in range(7)]
print ', '.join([day.strftime('%d %b %Y').upper() for day in dates])

Lưu ý rằng bạn cần phải vượt qua ngày hôm nay dưới dạng chuỗi.

Đã trả lời ngày 12 tháng 2 năm 2015 lúc 15:53Feb 12, 2015 at 15:53

BFTMBFTMBFTM

3.0655 Huy hiệu vàng23 Huy hiệu bạc22 Huy hiệu đồng5 gold badges23 silver badges22 bronze badges

1

Hướng dẫn get last week date in python - nhận ngày tuần trước bằng python

Chào các cậu,

Trong blog này, tôi sẽ học cách có được ngày bắt đầu và ngày kết thúc trong tuần ở Python. Chúng tôi sẽ nói về ngày bắt đầu của Python và ngày kết thúc. Bạn có thể nhận được ngày bắt đầu và ngày kết thúc trong tuần bằng Python.

Bài viết này sẽ cung cấp cho bạn các ví dụ về cách nhận ngày bắt đầu và ngày kết thúc trong tuần bằng Python. Nếu bạn muốn có một ngày bắt đầu và ngày kết thúc trong tuần trong Python thì bạn có thể sử dụng ví dụ này.

Trong Python, chúng ta có thể nhận được ngày bắt đầu và ngày kết thúc của tuần bằng Python. Hãy xem ví dụ dưới đây:

Ví dụ 1 :


# import datetime module

from datetime import datetime, timedelta

day = '27/01/2022'

dt = datetime.strptime(day, '%d/%m/%Y')

start = dt - timedelta(days=dt.weekday())

end = start + timedelta(days=6)

print("Week Start Date:"+str(start))

print("Week End Date:"+str(end))

Đầu ra

Week Start Date:2022-01-24 00:00:00

Week End Date:2022-01-30 00:00:00

Ví dụ 2:

# import datetime module

from datetime import date, timedelta

today = date.today()

start = today - timedelta(days=today.weekday())

end = start + timedelta(days=6)

print("Today: " + str(today))

print("Week Start: " + str(start))

print("Week End: " + str(end))

Đầu ra

Today: 2022-01-28

Week Start: 2022-01-24

Week End: 2022-01-30

Week Start Date:2022-01-24 00:00:00

Week End Date:2022-01-30 00:00:00

#PythonPython

Ví dụ 2:

Trong bài viết ngắn này, bạn sẽ thấy cách có được ngày hệ thống trước, hiện tại và ngày tiếp theo trong Python. Bạn cũng sẽ quan sát cách sửa đổi mã Python để có được định dạng ngày mong muốn của bạn.

Để bắt đầu, đây là cú pháp mà bạn có thể sử dụng để có được ngày hệ thống với dấu thời gian (sau đó bạn sẽ xem cách nhận ngày mà không có dấu thời gian):

Ngay hiện tại:

import datetime
Current_Date = datetime.datetime.today()
print (Current_Date)

Ngày trước:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
0

Ngày tiếp theo:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
1

Tiếp theo, bạn sẽ thấy hai trường hợp sau:

  1. Ngày hệ thống không định dạng trong Python (bao gồm cả dấu thời gian)
  2. Ngày hệ thống được định dạng trong Python (không có dấu thời gian)

Trường hợp 1: Ngày hệ thống không định dạng trong Python

Bạn có thể thêm 3 phần sau vào mã để có được ngày hệ thống không định dạng (bao gồm cả dấu thời gian) trong Python:

  1. Current_date = datetime.datetime.today ()today()
  2. Trước_date = datetime.dateTime.today () - datetime.timedelta (ngày = 1)– datetime.timedelta(days=1)
  3. NEXTDAY_DATE = DATETIME.DATETIME.TODAY () ++ datetime.timedelta(days=1)

Đây là mã Python đầy đủ mà bạn có thể sử dụng:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
2

Lưu ý rằng để có được ngày trước đó, bạn sẽ cần phải trừ 1 ngày kể từ ngày hiện tại:previous date, you’ll need to subtract 1 day from the current date:

datetime.datetime.today () & nbsp; - & nbsp; datetime.timedelta (ngày = 1) datetime.timedelta(days=1)

Ví dụ, nếu bạn muốn có được ngày hôm trước, sau đó bạn có thể khấu trừ 2 ngày như sau:day before yesterday, you may then deduct 2 days as follows:

datetime.datetime.today () & nbsp; - & nbsp; datetime.timedelta (ngày = 2) datetime.timedelta(days=2)

Để có được ngày trong tương lai, chỉ cần sử dụng biểu tượng cộng và đặt số ngày mong muốn của bạn (trong ví dụ của chúng tôi, chúng tôi đã thêm 1 ngày vào tương lai):future dates, simply use the plus symbol, and set your desired number of days (in our example, we added 1 day into the future):

datetime.datetime.today () + datetime.timedelta (ngày = 1)+ datetime.timedelta(days=1)

Dưới đây là kết quả nếu ai đó đã chạy mã Python trên 22-Mar-2021:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
3

Lưu ý rằng các kết quả được tạo ra trong Python bao gồm cả ngày và dấu thời gian. Trong phần tiếp theo, bạn sẽ thấy cách có được ngày hệ thống được định dạng trong Python (không bao gồm dấu thời gian).

Trường hợp 2: Ngày hệ thống định dạng trong Python

Hãy nói rằng bạn muốn trình bày ngày hệ thống của mình bằng cách sử dụng một định dạng khác. Ví dụ: bạn có thể muốn trình bày ngày hệ thống là ddmmyyyy (không có dấu thời gian).

Để thực hiện nhiệm vụ này, bạn sẽ cần sử dụng Strftime và đặt định dạng thành%d%m%y & nbsp; trong đó:%d%m%Y where:

  • %D đại diện cho các ngày trong tháng; và represents the days of the month; and
  • %m đại diện cho tháng; và represents the month; and
  • %Y đại diện cho năm represents the year

Đây là mã Python đầy đủ cho ví dụ của chúng tôi:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
4

Vào ngày 22 tháng 3, kết quả là:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
5

Đây chỉ là một ví dụ về định dạng ngày mà bạn có thể sử dụng. Bạn có thể áp dụng các định dạng khác nhau bằng cách thay đổi thông tin trong khung thời gian.

Chẳng hạn, nếu bạn muốn trình bày tháng trong các ký tự, thay vì tính bằng các chữ số, sau đó bạn có thể thay thế %m bằng %B trong khung thời gian:

today = (10 OCT 2014)

dates = [today + datetime.timedelta(days=i) for i in range(-4 - today.weekday(), 4 - today.weekday())]
print dates
6

Bạn có thể kiểm tra tham chiếu Python Strftime cho một danh sách các định dạng mà bạn có thể áp dụng.

Làm thế nào để tôi có được vào tuần trước ngày thứ Hai ở Python?

Khoa học dữ liệu thực tế bằng cách sử dụng Python bạn chỉ cần ngày hôm nay. Sau đó, trừ đi số ngày đã trôi qua trong tuần này (điều này giúp bạn 'thứ hai' cuối cùng). Cuối cùng thêm một tuần vào ngày này bằng cách sử dụng một đối tượng Timedelta và Voila bạn nhận được ngày thứ Hai tới.take today's date. Then subtract the number of days which already passed this week (this gets you 'last' monday). Finally add one week to this date using a timedelta object and voila you get the next monday's date.

Làm thế nào để tôi có được ngày bắt đầu và kết thúc tuần trước trong Python?

Ví dụ 1 :..
# Nhập mô -đun DateTime ..
Từ DateTime Nhập DateTime, TimEdelta ..
ngày = '27/01/2022 '.
DT = DateTime.Strptime (ngày, '%d/%m/%y').
start = dt - TimedelTa (ngày = dt. Day ()).
Kết thúc = Bắt đầu + Timedelta (ngày = 6).
In ("Ngày bắt đầu tuần:"+str (bắt đầu)).
In ("Ngày kết thúc tuần:"+str (kết thúc)).

Làm thế nào để tôi có được ngày hàng tuần trong Python?

Sử dụng phương thức Day () Phương thức Day () trong tuần trả về ngày trong tuần dưới dạng số nguyên, trong đó Thứ Hai là 0 và Chủ nhật là 6. Ví dụ: ngày (2022, 05, 02) là thứ Hai. The weekday() method returns the day of the week as an integer, where Monday is 0 and Sunday is 6. For example, the date(2022, 05, 02) is a Monday.

Làm cách nào để có được số tuần trước trong Python?

Để có được số tuần từ một ngày hoặc đối tượng DateTime trong Python, cách dễ nhất là sử dụng hàm python isocalendar ().Hàm DateTime () DateTime () Python cũng có thể hữu ích để có được số tuần kể từ ngày trong Python, tùy thuộc vào lịch bạn muốn sử dụng.use the Python isocalendar() function. The Python datetime strftime() function also can be helpful to get the week number from the date in Python, depending on which calendar you want to use.