Tìm cách tận dụng
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
5 để có được ngày bắt đầu và kết thúc tuần trước, Chủ nhật đến thứ Bảy.Vì vậy, nếu đó là 8/12/13 hôm nay, tôi muốn xác định một hàm in:
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
6Làm thế nào để tôi viết về điều này?
Chỉnh sửa: Được rồi, vì vậy dường như có một số câu hỏi về các trường hợp cạnh. Đối với các ngày thứ Bảy, tôi muốn cùng một tuần, đối với bất cứ điều gì khác, tôi muốn tuần dương lịch ngay trước ngày ____ 17.
Hỏi ngày 13 tháng 8 năm 2013 lúc 4:11Aug 13, 2013 at 4:11
Foxfoxfox
14.2K20 Huy hiệu vàng55 Huy hiệu bạc84 Huy hiệu đồng20 gold badges55 silver badges84 bronze badges
7
DateTime.Date.Weekday Trả về
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
8 cho thứ Hai. Bạn cần phải điều chỉnh điều đó.Thử sau:
>>> import datetime
>>> today = datetime.date.today[]
>>> today
datetime.date[2013, 8, 13]
>>> idx = [today.weekday[] + 1] % 7 # MON = 0, SUN = 6 -> SUN = 0 .. SAT = 6
>>> idx
2
>>> sun = today - datetime.timedelta[7+idx]
>>> sat = today - datetime.timedelta[7+idx-6]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
Nếu bạn được phép sử dụng python-dateutil:
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
Jroddynamite
11.9k3 Huy hiệu vàng41 Huy hiệu bạc57 Huy hiệu đồng3 gold badges41 silver badges57 bronze badges
Đã trả lời ngày 13 tháng 8 năm 2013 lúc 4:26Aug 13, 2013 at 4:26
Falsetrufalsetrufalsetru
345K59 Huy hiệu vàng690 Huy hiệu bạc613 Huy hiệu Đồng59 gold badges690 silver badges613 bronze badges
5
Tôi đã tìm thấy câu trả lời tốt nhất từ đây làm việc tốt trong trường hợp của tôi
thử cái này
from datetime import datetime,timedelta
import time
def last_day[d, day_name]:
days_of_week = ['sunday','monday','tuesday','wednesday',
'thursday','friday','saturday']
target_day = days_of_week.index[day_name.lower[]]
delta_day = target_day - d.isoweekday[]
if delta_day >= 0: delta_day -= 7 # go back 7 days
return d + timedelta[days=delta_day]
Đã trả lời ngày 7 tháng 11 năm 2013 lúc 11:47Nov 7, 2013 at 11:47
Kartheekkartheekkartheek
6.1443 huy hiệu vàng41 Huy hiệu bạc41 Huy hiệu đồng3 gold badges41 silver badges41 bronze badges
2
from datetime import date
def satandsun[input]:
d = input.toordinal[]
last = d - 6
sunday = last - [last % 7]
saturday = sunday + 6
print date.fromordinal[sunday]
print date.fromordinal[saturday]
Lưu ý rằng điều này dường như tồn tại tất cả các trường hợp của bạn:
>>> satandsun[date[2013, 8, 10]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 11]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 12]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 13]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 14]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 15]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 16]]
2013-08-04
2013-08-10
>>> satandsun[date[2013, 8, 17]]
2013-08-11
2013-08-17
Đã trả lời ngày 13 tháng 8 năm 2013 lúc 4:35Aug 13, 2013 at 4:35
Jasonjasonjason
Phù thủy vàng 232K33417 Huy hiệu bạc519 Huy hiệu đồng33 gold badges417 silver badges519 bronze badges
0
import datetime
d = datetime.datetime.today[]
sat_offset = [d.weekday[] - 5] % 7
saturday = d - datetime.timedelta[days=sat_offset]
print["Last Saturday was on", saturday]
sun_offset = [d.weekday[] - 6] % 7
sunday = d - datetime.timedelta[days=sun_offset]
print["Last Sunday was on", sunday]
Đã trả lời ngày 24 tháng 10 năm 2018 lúc 11:38Oct 24, 2018 at 11:38
>>> today = date.today[].toordinal[]
>>> lastWeek = today-7
>>> sunday = lastWeek - [lastWeek % 7]
>>> saturday = sunday + 6
>>> print "Last Sunday was %s and last Saturday was %s" % [date.fromordinal[sunday], date.fromordinal[saturday]]
Last Sunday was 2013-08-04 and last Saturday was 2013-08-10
Đã trả lời ngày 13 tháng 8 năm 2013 lúc 4:27Aug 13, 2013 at 4:27
RobᵩrobᵩRobᵩ
158K17 Huy hiệu vàng226 Huy hiệu bạc 301 Huy hiệu đồng17 gold badges226 silver badges301 bronze badges
2
Khi tôi đối phó với điều này, tôi đã đi kèm với giải pháp này:
from datetime import datetime, timedelta
def prior_week_end[]:
return datetime.now[] - timedelta[days=[[datetime.now[].isoweekday[] + 1] % 7]]
def prior_week_start[]:
return prior_week_end[] - timedelta[days=6]
Vì vậy, OP có thể sử dụng nó như:
'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[prior_week_start[], prior_week_end[]]
Đã trả lời ngày 7 tháng 8 năm 2018 lúc 7:48Aug 7, 2018 at 7:48
Jozojozojozo
3.6321 Huy hiệu vàng24 Huy hiệu bạc29 Huy hiệu đồng1 gold badge24 silver badges29 bronze badges
Mã sau làm việc cho tôi:
today = datetime.date.today[]
last_sunday_offset = today.weekday[] + 1 # convert day format mon-sun=0-6 => sun-sat=0-6
last_sunday = today - datetime.timedelta[days=last_sunday_offset]
Lưu ý: Ở trên tôi đã lấy ngày trong tuần bình thường [0 cho thứ Hai] nhưng vào Thứ Hai ISOWEEKDAY sẽ là 1. Để biết thêm chi tiết, bạn có thể xem ra ngoài trong tuần [] và iSoweekDay [] Phương thức của Python tích hợp gói DateTime.py:weekday[] and isoweekday[] method of python built-in package datetime.py:
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
0Đã trả lời ngày 16 tháng 4 năm 2021 lúc 11:04Apr 16, 2021 at 11:04
Đây là những gì tôi đã làm:
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
1Vì vậy, bây giờ tôi có thể chạy ..
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
2hoặc bất kỳ ngày nào trong tuần
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
3Đã trả lời ngày 13 tháng 2 lúc 18:21Feb 13 at 18:21
Greggregreg
Phù hiệu bằng đồng 2344 bronze badges
Cách đơn giản nhất là:
>>> import datetime
>>> from dateutil import relativedelta
>>> today = datetime.datetime.now[]
>>> start = today - datetime.timedelta[[today.weekday[] + 1] % 7]
>>> sat = start + relativedelta.relativedelta[weekday=relativedelta.SA[-1]]
>>> sun = sat + relativedelta.relativedelta[weekday=relativedelta.SU[-1]]
>>> 'Last Sunday was {:%m/%d/%Y} and last Saturday was {:%m/%d/%Y}'.format[sun, sat]
'Last Sunday was 08/04/2013 and last Saturday was 08/10/2013'
4Hôm nay được đặt thành UTC, hãy thoải mái sử dụng cách ưa thích của bạn.
Đã trả lời ngày 12 tháng 4 lúc 12:06Apr 12 at 12:06