Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Tôi đang cố gắng tìm ngày đầu tiên của tháng ở Python với một điều kiện: Nếu ngày hiện tại của tôi đã đi qua ngày 25 của tháng, thì biến ngày đầu tiên sẽ tổ chức ngày đầu tiên của tháng tiếp theo thay vì tháng hiện tại. Tôi đang làm như sau:

import datetime 
todayDate = datetime.date.today()
if (todayDate - todayDate.replace(day=1)).days > 25:
    x= todayDate + datetime.timedelta(30)
    x.replace(day=1)
    print x
else:
    print todayDate.replace(day=1)

Có cách nào sạch hơn để làm điều này không?

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Mel

5.56810 Huy hiệu vàng39 Huy hiệu bạc42 Huy hiệu đồng10 gold badges39 silver badges42 bronze badges

Khi được hỏi ngày 23 tháng 5 năm 2016 lúc 16:42May 23, 2016 at 16:42

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

2

Có thể được thực hiện trên cùng một dòng bằng cách sử dụng

from datetime import datetime

datetime.today().replace(day=1)
7:

from datetime import datetime

datetime.today().replace(day=1)

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

cglacet

7.3483 Huy hiệu vàng41 Huy hiệu bạc54 Huy hiệu đồng3 gold badges41 silver badges54 bronze badges

Đã trả lời ngày 23 tháng 7 năm 2017 lúc 15:40Jul 23, 2017 at 15:40

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

5

Đây là một giải pháp pithy.

import datetime 

todayDate = datetime.date.today()
if todayDate.day > 25:
    todayDate += datetime.timedelta(7)
print todayDate.replace(day=1)

Một điều cần lưu ý với ví dụ mã gốc là sử dụng

from datetime import datetime

datetime.today().replace(day=1)
8 sẽ gây rắc rối nếu bạn đang thử nghiệm vào ngày cuối cùng của tháng một. Đó là lý do tại sao tôi đang sử dụng đồng bằng 7 ngày.will cause trouble if you are testing the last day of January. That is why I am using a 7-day delta.

Đã trả lời ngày 23 tháng 5 năm 2016 lúc 17:05May 23, 2016 at 17:05

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Andrewandrewandrew

3,8291 Huy hiệu vàng23 Huy hiệu bạc38 Huy hiệu đồng1 gold badge23 silver badges38 bronze badges

1

Sử dụng ngàytil.

from datetime import date
from dateutil.relativedelta import relativedelta

today = date.today()
first_day = today.replace(day=1)
if today.day > 25:
    print(first_day + relativedelta(months=1))
else:
    print(first_day)

Đã trả lời ngày 23 tháng 5 năm 2016 lúc 16:55May 23, 2016 at 16:55

Lampslavelampslavelampslave

1.33514 Huy hiệu bạc19 Huy hiệu đồng14 silver badges19 bronze badges

1

from datetime import datetime

date_today = datetime.now()
month_first_day = date_today.replace(day=1, hour=0, minute=0, second=0, microsecond=0)
print(month_first_day)

Đã trả lời ngày 13 tháng 12 năm 2018 lúc 7:24Dec 13, 2018 at 7:24

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Balaji.J.BBalaji.J.BBalaji.J.B

5386 Huy hiệu bạc14 Huy hiệu Đồng6 silver badges14 bronze badges

1

Sử dụng mũi tên.

import arrow
arrow.utcnow().span('month')[0]

Đã trả lời ngày 17 tháng 7 năm 2018 lúc 10:03Jul 17, 2018 at 10:03

ImPerat0R_ImPerat0R_ImPerat0R_

5638 Huy hiệu bạc8 Huy hiệu Đồng8 silver badges8 bronze badges

Đây có thể là một giải pháp thay thế cho câu trả lời của Gustavo Eduardo Belduma:

import datetime 
first_day_of_the_month = datetime.date.today().replace(day=1)

Đã trả lời ngày 9 tháng 4 năm 2020 lúc 7:54Apr 9, 2020 at 7:54

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Tjurkantjurkantjurkan

3614 Huy hiệu bạc7 Huy hiệu đồng4 silver badges7 bronze badges

1

Có, trước tiên hãy đặt một datetime vào đầu tháng hiện tại.

Thử nghiệm thứ hai nếu ngày hiện tại ngày> 25 và nhận đúng/sai về điều đó. Nếu đúng thì thêm thêm một tháng vào đầu tháng của đối tượng DateTime. Nếu sai thì hãy sử dụng đối tượng DateTime với giá trị được đặt vào đầu tháng.

import datetime 
from dateutil.relativedelta import relativedelta

todayDate = datetime.date.today()
resultDate = todayDate.replace(day=1)

if ((todayDate - resultDate).days > 25):
    resultDate = resultDate + relativedelta(months=1)

print resultDate

Đã trả lời ngày 23 tháng 5 năm 2016 lúc 16:56May 23, 2016 at 16:56

mba12mba12mba12

2.5426 Huy hiệu vàng34 Huy hiệu bạc52 Huy hiệu Đồng6 gold badges34 silver badges52 bronze badges

Mô -đun mũi tên sẽ điều khiển bạn xung quanh và tránh xa những sai lầm tinh tế, và việc sử dụng các sản phẩm cũ hơn sẽ dễ dàng hơn.arrow module will steer you around and away from subtle mistakes, and it's easier to use that older products.

import arrow

def cleanWay(oneDate):
    if currentDate.date().day > 25:
        return currentDate.replace(months=+1,day=1)
    else:
        return currentDate.replace(day=1)


currentDate = arrow.get('25-Feb-2017', 'DD-MMM-YYYY')
print (currentDate.format('DD-MMM-YYYY'), cleanWay(currentDate).format('DD-MMM-YYYY'))

currentDate = arrow.get('28-Feb-2017', 'DD-MMM-YYYY')
print (currentDate.format('DD-MMM-YYYY'), cleanWay(currentDate).format('DD-MMM-YYYY'))

Trong trường hợp này, không cần bạn xem xét các độ dài khác nhau của tháng, ví dụ. Đây là đầu ra từ tập lệnh này.

25-Feb-2017 01-Feb-2017
28-Feb-2017 01-Mar-2017

Đã trả lời ngày 22 tháng 2 năm 2017 lúc 14:41Feb 22, 2017 at 14:41

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Bill Bellbill BellBill Bell

20.4K5 Huy hiệu vàng42 Huy hiệu bạc57 Huy hiệu đồng5 gold badges42 silver badges57 bronze badges

1

Tôi tìm thấy một cách sạch sẽ để làm điều này là tạo một đối tượng DateTime bằng các thuộc tính tháng và năm của TodayDate, với ngày được đặt thành 1 tức là.

from datetime import datetime

datetime.today().replace(day=1)
0

Đã trả lời ngày 24 tháng 9 năm 2021 lúc 11:05Sep 24, 2021 at 11:05

Bạn có thể sử dụng DateUtil.Rrule:

from datetime import datetime

datetime.today().replace(day=1)
1

Đã trả lời ngày 21 tháng 9 năm 2018 lúc 8:06Sep 21, 2018 at 8:06

dtatarkindtatarkindtatarkin

1.0217 huy hiệu bạc6 Huy hiệu đồng7 silver badges6 bronze badges

One-liner:

from datetime import datetime

datetime.today().replace(day=1)
2

Đã trả lời ngày 7 tháng 12 năm 2021 lúc 10:32Dec 7, 2021 at 10:32

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Giải pháp của tôi để tìm ngày đầu tiên và ngày cuối cùng của tháng hiện tại:

from datetime import datetime

datetime.today().replace(day=1)
3

Đã trả lời ngày 22 tháng 10 năm 2019 lúc 10:17Oct 22, 2019 at 10:17

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Mhyousefimhyousefimhyousefi

9042 Huy hiệu vàng12 Huy hiệu bạc29 Huy hiệu đồng2 gold badges12 silver badges29 bronze badges

Ngày đầu tiên của tháng tiếp theo:

from datetime import datetime

datetime.today().replace(day=1)
9

from datetime import datetime

datetime.today().replace(day=1)
4

Sau đó, chúng tôi thay thế tháng và ngày

from datetime import datetime

datetime.today().replace(day=1)
5

Đã trả lời ngày 22 tháng 7 năm 2020 lúc 15:40Jul 22, 2020 at 15:40

Lấy cảm hứng từ câu trả lời của Jouberto và @Akx (nơi khác), Oneliners mà không có bất kỳ sự phụ thuộc nào:

from datetime import datetime

datetime.today().replace(day=1)
6

Đã trả lời ngày 5 tháng 9 lúc 12:53Sep 5 at 12:53

Hướng dẫn python check if first day of month - python kiểm tra xem ngày đầu tiên của tháng

Aapo ristaaapo ristaAapo Rista

1211 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges

Làm thế nào để bạn có được ngày đầu tiên của tháng ở Python?

Nhận ngày đầu tiên trong tháng bằng cách sử dụng Python..
Nhập DateTime CurrentDate = DateTime.ngày.Hôm nay () FirstdayOfMonth = DateTime.ngày (hiện tại. ....
Nhập DateTime CurrentDate = DateTime.ngày.Hôm nay () FirstdayOfMonth = DateTime.....
Nhập lịch nhập DateTime currentDate = DateTime.ngày.hôm nay () cuối cùng

Làm thế nào để tôi có được ngày cuối cùng của tháng tiếp theo ở Python?

Phương pháp số 1: Sử dụng thay thế () + TimeDelta () trong này, trích xuất vào tháng tiếp theo và trừ vào ngày của đối tượng tháng tiếp theo được trích xuất từ tháng tiếp theo, dẫn đến 1 ngày trước khi bắt đầu tháng tiếp theo, tức là ngày cuối cùng của tháng hiện tại.Using replace() + timedelta() In this, extract the next month, and subtract the day of next month object extracted from the next month, resulting in 1 day before beginning of next month, i.e last date of current month.

Làm thế nào để bạn so sánh ngày DateTime?

Phương thức so sánh () trong C# được sử dụng để so sánh hai trường hợp DateTime.Nó trả về một giá trị số nguyên, is used for comparison of two DateTime instances. It returns an integer value, <0 − If date1 is earlier than date2. 0 − If date1 is the same as date2.

Làm thế nào để tôi có được ngày trong tuần ở 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.