
Tôi đã có một điều rất đơn giản để ở Python: Tôi cần một danh sách các bộ dữ liệu (year,month)
cho các tháng x cuối cùng bắt đầu (và bao gồm) từ hôm nay. Vì vậy, với x = 10 và hôm nay (tháng 7 năm 2011), lệnh sẽ xuất ra:
[(2011, 7), (2011, 6), (2011, 5), (2011, 4), (2011, 3),
(2011, 2), (2011, 1), (2010, 12), (2010, 11), (2010, 10)]
Chỉ nên sử dụng triển khai DateTime mặc định của Python. Tôi đã đưa ra giải pháp sau:
Bạn Đang Xem: Hướng dẫn python get last 3 months – python được 3 tháng qua
import datetime
[(d.year, d.month) for d in [datetime.date.today()-datetime.timedelta(weeks=4*i) for i in range(0,10)]]
Giải pháp này đưa ra giải pháp chính xác cho các trường hợp thử nghiệm của tôi nhưng tôi không thoải mái với giải pháp này: giả định rằng một tháng có bốn tuần và điều này đơn giản là không đúng. Tôi có thể thay thế weeks=4
bằng days=30
sẽ tạo ra một giải pháp tốt hơn nhưng nó vẫn không đúng.
Giải pháp khác xuất hiện trong tâm trí tôi là sử dụng toán học đơn giản và trừ 1 từ một tháng và nếu số lần kê đơn là 0, trừ 1 từ một năm quầy. Vấn đề với giải pháp này: Nó đòi hỏi nhiều mã hơn và cũng không thể đọc được lắm.
Vậy làm thế nào điều này có thể được thực hiện chính xác?
Sử dụng mô -đun DateTime trong Python, bạn có thể trích xuất nhanh chóng và hiệu quả vào tháng trước kể từ một ngày nhất định. Thuật ngữ tháng trước đó được sử dụng để chỉ tháng trước khi được thảo luận. Kết quả là, bạn có thể nói một cái gì đó giống như nó đã mưa rất nhiều vào tháng 3, nhưng không nhiều như tháng trước, anh ấy đề cập đến tháng hai. Đọc hướng dẫn này để truy xuất tháng trước bằng Python. Bạn sẽ học cách lấy lại tháng trước từ một ngày ở Python trong bài đăng này.
Xem Tắt
Mô -đun DateTime trong Python là gì?
Mặc dù ngày và thời gian không phải là loại dữ liệu trong Python, một mô -đun thường được sử dụng có tên DateTime thường được sử dụng để hoạt động với cả ngày và giờ. Mô -đun DateTime Python được bao gồm với Python, do đó, không cần phải cài đặt riêng.
Mô -đun DateTime Python bao gồm các lớp có thể được sử dụng để sử dụng thời gian và ngày. Trong Python, một ngày và một datetime là cả hai đối tượng. Bạn thay đổi các đối tượng thay vì dấu thời gian hoặc chuỗi khi bạn cố gắng thay đổi các lớp này.
Mô -đun DateTime được chia thành sáu loại:
- Ngày – Một ngày giả định rằng lịch hiện tại của Gregorian luôn có hiệu lực và sẽ tiếp tục như vậy. Đặc điểm của nó bao gồm năm, tháng và ngày.– An assumed date that the present Gregorian calendar has always been in effect and will continue to be so. Its characteristics include year, month, and day.
- Thời gian – Một thời gian độc lập với bất kỳ ngày cụ thể nào và ngụ ý rằng mỗi ngày có chính xác 24*60*60 giây. Các thuộc tính của nó bao gồm giờ, phút, thứ hai, micro giây, cũng như tzinfo.– A time that is independent of any specific day and implies that each day has exactly 24*60*60 seconds. Its attributes
include hour, minute, second, microsecond, as well as tzinfo. - DateTime – Kết hợp với ngày và giờ, thuộc tính này bao gồm các đặc điểm tháng, năm, ngày, phút, giờ, micro giây, thứ hai và tzinfo.– In conjunction to the date and time, this property includes the month, year, day, minute, hour, microsecond, second, and tzinfo characteristics.
- TimEdelTA – Một thời lượng thể hiện sự khác biệt về micro giây giữa hai ngày, thời gian hoặc trường hợp DateTime.– A duration that expresses the difference in microseconds between two dates, times, or datetime instances.
- Tzinfo – nó cung cấp các đối tượng. Những đối tượng này bao gồm thông tin về múi giờ.– It provides objects. These objects include information about the time zone.
- Timezone – Phiên bản lớp cơ sở Tóm tắt TZINFO có độ lệch liên tục từ UTC. Nó là mới trong phiên bản 3.2.– The tzinfo abstract base class’s version has a constant offset from UTC. It is new in version 3.2.
Xem Thêm : 5 there are differences and similarities between vietnamese and american tốt nhất
Hãy cùng xem xét một số ví dụ lập trình Python về cách có được một tháng trước.
Ví dụ 1:
Mô -đun DateTime được nhập đầu tiên trong ví dụ đầu tiên. DateTime là gói Python được cài đặt sẵn. Nó bao gồm các lớp học để xử lý ngày và thời gian. DateTime sẽ cung cấp cho chúng tôi tất cả các công cụ chúng tôi cần để tìm ngày bắt đầu của tháng trước. Sau khi nhập mô -đun, chúng tôi phải sử dụng DateTime.date để tạo biểu diễn ngày (năm, tháng, ngày).
Sau đó, sử dụng abc.replace (xông), chúng ta có thể cập nhật ngày. Tuy nhiên, chúng ta phải tính đến tháng và năm, cũng như tháng xảy ra ngày. Để làm như vậy, hãy đọc mã dưới đây:
FromDateTimeImport Ngày ABC = ngày (2022,4,2) tháng, năm = (abc.month-1, abc.year) nếu abc.month! = 1, tháng = tháng, năm = năm) in (pre_month) datetime import date
abc = date(2022, 4,
2)
month, year = (abc.month-1, abc.year) if abc.month != 1 else (12, abc.year-1)
pre_month = abc.replace(day=1,
month=month, year=year)
print(pre_month)
Bạn có thể thấy rằng ngày tháng trước được hiển thị ở đây.
Ví dụ 2:
Để có được một datetime đại diện cho một tháng trước, chúng tôi sẽ sử dụng dd.datetime.replace () trong ví dụ này. Mô -đun DateTime được nhập bằng cách sử dụng DD tiện ích mở rộng. Nhận được một dd.datetime từ một tháng trước mang lại một dd.datetime mới với ngày và giờ kể từ tháng đó. Nếu tháng hiện tại, ngày hôm nay vượt quá số ngày trước đó, thì tháng trước, ngày cuối cùng sẽ được trả lại.
Để có được ngày và giờ hiện tại, chúng tôi đã sử dụng dd.datetime.today (). Để có được tháng của kết quả trước đó dd.datetime, hãy sử dụng dd.datetime.month. Cuộc gọi datetime.datetime Nếu tháng hiện tại là 1. t là dd.datetime.year – 1, trong đó dd.datetime là ngày và giờ hiện tại, thay thế (năm = t, tháng = 12) với t là dd.datetime.year – 1. Nếu không, đặt biến ‘ngày’ thành 0. Số ngày kể từ ngày hiện tại được biểu thị bằng biến ‘ngày’ trong mã.
Sau đó, chúng tôi đã sử dụng cú pháp thực sự để xây dựng một vòng lặp. Một thử và ngoại trừ khối đã được thêm vào vòng lặp. Gọi DD.DATETIME trong khối thử. Thay thế (tháng = t.month, day = t.day) bằng tháng hiện tại trừ đi một và ngày hiện tại trừ đi ngày.
Sử dụng phá vỡ để ra khỏi vòng lặp. Một giá trịerRor sẽ được tạo ra nếu ngày hôm nay lớn hơn ngày kết thúc của tháng trước và chức năng sẽ nhảy đến khối ngoại trừ. Thêm 1 đến ‘ngày trong khối ngoại trừ.
Nhập khẩuDateTimeas dd t = dd.dateTime.today () nếu t.month == 1: & nbsp; & nbsp; pre_month = t.replace (năm = t.year – 1, tháng = 12) khác: & nbsp; & nbsp; ngày = 0 & nbsp; & nbsp; whiletrue: & nbsp; & nbsp; & nbsp; & nbsp; thử: & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; pre_month = t.Reace (tháng = t.month – 1, day = t.day – ngày) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; phá vỡ & nbsp; & nbsp; & nbsp; & nbsp; ngoại trừvalueerror: & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ngày += 1print (pre_month) datetime as dd
t =
dd.datetime.today()
if t.month == 1:
pre_month = t.replace(year=t.year – 1, month=12)
else:
days = 0
while True:
try:
pre_month = t.replace(month=t.month – 1, day=t.day – days)
break
except ValueError:
days += 1
print(pre_month)
Mã trên tạo ra đầu ra trông giống như thế này.
Ví dụ 3:
Xem Thêm : Đi tiểu nhiều sau khi quan hệ ở nam giới
Chúng tôi sẽ sử dụng các phương thức thay thế () và Timedelta () trong ví dụ này. Chúng tôi sẽ trích xuất vào tháng tiếp theo, sau đó trừ đi ngày của đối tượng tháng tiếp theo từ tháng tiếp theo, dẫn đến 1 ngày trước khi bắt đầu tháng hiện tại, (tức là, tháng hiện tại ngày cuối cùng.)
Toàn bộ mã Python để giải thích cách truy xuất ngày cuối cùng của tháng bằng cách sử dụng các phương thức thay thế () + TimedelTa () được hiển thị bên dưới.
Để bắt đầu, chúng tôi đã nhập mô -đun, đặt ngày và in ngày ban đầu cho độc giả. Sau đó, chúng tôi đã có được tháng sau bằng cách sử dụng phương thức thay thế () để nhận ngày hôm trước và bù đắp để có được tháng sau. Sau đó, chúng tôi đã khấu trừ các ngày từ những ngày tiếp theo để có được ngày kết thúc tháng hiện tại. Cuối cùng, tháng cuối cùng được trình bày.
Nhập khẩu DD DD = DD.DATETIME (2022,4,2) & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; print (“Đây là ngày ban đầu:” + str (ngày)) nxt_date = date.replace (ngày = 28) + dd.timedelta (ngày = 4) res = nxt_date – dd.timedelta (days = nxt_date.day) in (“Đây là ngày cuối cùng của tháng:” + str (res.day)) datetime as dd
date = dd.datetime(2022, 4,
2)
print(“Here is the original date: ” + str(date))
nxt_date = date.replace(day=28) + dd.timedelta(days=4)
res = nxt_date –
dd.timedelta(days=nxt_date.day)
print(“Here is the last date of month: ” + str(res.day))
Ngày ban đầu và ngày cuối cùng của tháng được hiển thị ở đây.
Sự kết luận:
Trong bài đăng này, chúng tôi đã xem xét cách sử dụng mô -đun DateTime để có được ngày tháng trước. Mô -đun Datetime Python được thể hiện chi tiết yêu cầu để có được ngày tháng trước. Chúng tôi đã đưa ra một loạt các ví dụ sử dụng các chức năng khác nhau như thay thế () và TimEdelTa () mà bạn có thể sử dụng để hiểu rõ hơn về khái niệm này.
Thông tin về các Tác giả
Xin chào, tôi là một nhà văn tự do và thường viết cho Linux và các nội dung liên quan đến công nghệ khác
Làm thế nào để tôi có được 12 tháng qua trong Python?
Câu lạc bộ DateTime 12 tháng trước.. Từ DateTime Nhập Timedelta .. từ ngày Nhập khẩu Relativingelta Relativingelta .. end_date = start_date + relativingelta (tháng = delta_period) + Timedelta (ngày = -delta_period).
Làm thế nào để bạn trừ tháng trong Python?
Cách dễ nhất để trừ tháng kể từ một ngày ở Python là sử dụng phần mở rộng DateUtil.Đối tượng tương đối từ ngày DateUtil.Mô -đun tương đối cho phép bạn trừ bất kỳ số tháng nào từ một đối tượng ngày.use the dateutil extension. The relativedelta object from the dateutil. relativedelta module allows you to subtract any number of months from a date object.
Làm thế nào để tôi có được tháng và năm cuối cùng ở Python?
Để làm như vậy, hãy đọc mã dưới đây:.. Từ ngày nhập DateTime.ABC = Ngày (2022, 4, 2) tháng, năm = (ABC. Tháng-1, ABC. Năm) nếu ABC….. Nhập Datetime dưới dạng DD.t = dd.ngày giờ.hôm nay () nếu t….. Nhập Datetime dưới dạng DD.Ngày = DD.DateTime (2022, 4, 2) in (“Đây là ngày ban đầu:” + str (ngày)) nxt_date = date ..
Làm thế nào để tôi có được 30 ngày qua trong Python?
DateTime Python DateTime 30 ngày trước của mã.. Từ DateTime Nhập DateTime, TimEdelta .. Hôm nay = DateTime.hôm nay(). Hôm qua = hôm nay – Timedelta (ngày = 1). One_week_ago = hôm nay – Timedelta (ngày = 7). Ba mươi_days_ago = hôm nay – Timedelta (ngày = 30).
Nguồn: https://quatangtiny.com
Danh mục: Blog