Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Lấy danh sách các tháng giữa 2 khoảng thời gian trong python 3 - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Bài viết này mình sẽ chia sẻ với các bạn cách lấy danh sách các tháng nằm giữa 2 ngày cho trước, hoặc các tháng trong năm bằng Python 3:

Lấy danh sách các tháng giữa 2 khoảng thời gian

Đầu tiên mình tạo 1 file Datetime Helper có nội dung như sau:

from datetime import datetime
from dateutil.rrule import rrule, MONTHLY


class DateTimeHelper:
    @staticmethod
    def list_of_months_between_two_dates(start_date, end_date, input_format="%Y-%m-%d", output_format="%Y-%m"):
        """
        List months between two dates
        :param start_date:
        :param end_date:
        :param input_format:
        :param output_format:
        :return: [%Y1-%m1, %Y2-%m2]
        """
        # Convert string to time
        start_datetime = datetime.strptime(start_date, input_format)
        end_datetime = datetime.strptime(end_date, input_format)
        # Return list
        return [dt.strftime(output_format) for dt in rrule(MONTHLY, dtstart=start_datetime, until=end_datetime)]

Sau đó mình viết đoạn code để lấy thông tin các tháng giữa 2 khoảng thời gian như sau:

from DateTimeHelper import DateTimeHelper

start_date = '2022-01-01'
end_date = '2022-12-01'

list_of_months = DateTimeHelper.list_of_months_between_two_dates(start_date, end_date)
print(list_of_months)

Kết quả chạy thì mình thu được:

Lấy danh sách các tháng trong 1 năm

Trường hợp bạn muốn lấy danh sách các tháng trong 1 năm thì có thể viết đơn giản như sau:

year = '2022'
list_months_of_year = ["%s-%02d" % (year, i) for i in range(1, 13)]
print(list_months_of_year)

Kết quả:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *