Làm thế nào để bạn cộng hoặc trừ ngày trong python?

nhập ngày giờ

# Thời gian khác biệt cho thời gian Thái Bình Dương

pacificTimeDelta    = ngày giờ. múi giờ[giờ=-8]

# Ví dụ: tạo múi giờ PST

tzPST        = ngày giờ. múi giờ [pacificTimeDelta, name="PST"]

# tạo ngày giờ cho 1 giờ chiều PST - 31Dec2017 - Đối tượng nhận biết

OnePMyearEndPST = ngày giờ. ngày giờ[2017,12,31,1,0,0,0,tzPST]

# Thời gian chênh lệch cho giờ EST

nycTimeDelta    = ngày giờ. múi giờ[giờ=-8]

# Ví dụ: tạo múi giờ PST

tzEST           = ngày giờ. múi giờ [nycTimeDelta, name="EST"]

# tạo ngày giờ cho 1 giờ chiều PST - 31Dec2017 - Đối tượng nhận biết

TwoPMyearEndEST = ngày giờ. ngày giờ[2017,12,31,2,0,0,0,kiểm tra]

in[HaiPMyearEndEST-OnePMyearEndPST]

Trong hướng dẫn tự động hóa Python ngày hôm nay, chúng tôi muốn chỉ ra cách bạn có thể dễ dàng trừ và tính chênh lệch thời gian bằng ngôn ngữ Python

Chúng tôi sẽ sử dụng mô-đun datetime để tính toán

  1. Sự khác biệt giữa hai ngày
  2. Sự khác biệt giữa một ngày và một đối tượng timedelta
  3. Trừ các múi giờ khác khỏi các đối tượng ngày. năm, tháng, giờ, phút, giây

Trừ ngày từ một đối tượng datetime trong Python

Hãy xác định hai đối tượng ngày đại diện cho ngày tuyển dụng và nghỉ việc của một nhân viên ngẫu nhiên

import datetime
hire_date = datetime.date[2021,4, 7]
quit_date = datetime.date[2022,4, 24]

Sau đó, hãy tính tổng thời gian làm việc

print["The overall time that this employee worked in our company was:" + str[quit_date - hire_date].split[','][0]+"."]

Đây là kết quả

The overall time that this employee worked in our company was:382 days.

Trừ timedelta từ datetime

Bây giờ chúng ta sẽ xác định một datetime và timedelta đại diện cho ngày thuê và số ngày làm việc cho nhân viên hư cấu của chúng ta

import datetime
hire_date = datetime.date[2021,4, 7]
worked_days = datetime.timedelta[282]

Hãy tính nhanh ngày nghỉ việc của nhân viên này

print["The hire date of this employee worked in our company was: " + str[quit_date - worked_days]+"."]

Đây là kết quả

The hire date of this employee worked in our company was: 2021-06-08.

Ghi chú. Một cách khác để thực hiện điều này là sử dụng dateutil. phương pháp tương đối

print[quit_date - relativedelta[days = 282]]

Trừ năm từ datetime

ngày sử dụng. tiện ích relativedelta cho phép dễ dàng trừ thời gian khỏi một đối tượng ngày

from dateutil.relativedelta import relativedelta
graduation_date = quit_date - relativedelta[years = 2]

print["His graduation date was on: " + str[graduation_date]]

Kết quả sẽ là

________số 8

Ghi chú. Đừng quên nhập tiện ích vào chương trình Python của bạn, nếu không bạn sẽ nhận được NameError sau

NameError: name 'relativedelta' is not defined

Trừ tháng từ ngày Python

Như chúng ta vừa học, chúng ta có thể sử dụng tiện ích relativedelta để tính toán sự khác biệt về thời gian so với dấu thời gian / ngày của Python

Điều cần thiết là phải có một mô-đun có thể sửa đổi ngày và giờ vì như chúng ta đều biết, chúng được sử dụng trong các ứng dụng mà chúng ta phải theo dõi ngày và giờ. Mô-đun DateTime trong Python xử lý ngày và giờ. Python đi kèm với một mô-đun datetime tích hợp

Việc cài đặt hai thư viện mới là cần thiết trước khi bất kỳ sửa đổi dữ liệu nào có thể diễn ra

  • Ngày và thời gian được truy xuất nhanh chóng bằng thư viện mũi tên
  • Có thể truy cập và sử dụng DataFrame nhờ thư viện Pandas

Chuyển đến bảng điều khiển IDE để cài đặt các thư viện này. Chạy mã bên dưới tại dấu nhắc lệnh [$]. Dấu nhắc lệnh cho thiết bị đầu cuối được sử dụng trong hình minh họa này được biểu thị bằng ký hiệu đô la [$]. Lời nhắc trên thiết bị đầu cuối của bạn có thể khác

phương pháp được sử dụng

  • thời gian - Nó hiển thị thời gian, không phụ thuộc vào bất kỳ ngày cụ thể nào với các thuộc tính là giờ, phút, giây, micro giây và tzinfo

  • timedelta - Nó được sử dụng để thao tác Ngày

  • date − Nó hiển thị ngày theo lịch Gruzia với các thuộc tính là năm, tháng và ngày

  • tzinfo − Nó cung cấp thông tin về Múi giờ

  • datetime - Nó là một tập hợp Ngày và Giờ với các thuộc tính năm, tháng, ngày, giờ, phút, giây, micro giây và tzinfo

cú pháp

print["The overall time that this employee worked in our company was:" + str[quit_date - hire_date].split[','][0]+"."]
0

Lưu ý - nếu chúng tôi không chỉ định theo mặc định, nó sẽ lấy số nguyên là một ngày

thuật toán

  • Khởi tạo một chuỗi và sử dụng phương thức today để truy xuất ngày hiện tại và phương thức split để tách nó thành Danh sách

  • Khai báo một biến mới gọi datetime. date[] và nhận ba đối số. năm hiện tại, tháng và ngày hiện tại

  • Khai báo một biến sử dụng timedelta và truyền vào một số nguyên là số ngày cần trừ khỏi ngày ban đầu

  • Trả về sự khác biệt của datetime. biến date[] và biến timedelta

Phương pháp 1. sử dụng ngày giờ. múi giờ[]

Ví dụ

Phương thức này lấy ngày hiện tại dưới dạng một chuỗi và chia nó thành một Danh sách. Sau đó, ngày hiện tại [ngày lĩnh lương] được định cấu hình và mười [10] ngày được trừ đi [datetime. timedelta[10]] từ cùng một ngày để trả về một ngày mới

đầu ra

print["The overall time that this employee worked in our company was:" + str[quit_date - hire_date].split[','][0]+"."]
1

Giải thích mã

Khai báo ngày hôm nay truy xuất ngày hiện tại [yyyy-mm-dd] và tách chuỗi ngày trên dấu gạch nối [tách['-']]. Điều này trả về ngày hiện tại dưới dạng Danh sách các chuỗi ['2022', '05', '27']. Khai báo payday gọi datetime. date[] và nhận ba [3] đối số nguyên. năm hiện tại [int[get_today[0]]], tháng hiện tại [int[get_today[1]]] và ngày, [25]. Khai báo chqday sử dụng timedelta và truyền một số nguyên, [10] là số ngày cần trừ khỏi ngày ban đầu [25]. Khai báo n_payday trừ ngày lĩnh lương từ chqday. Cuối cùng, đầu ra của n_paydy được gửi đến thiết bị đầu cuối

Phương pháp 2. Sử dụng Pandas để trừ các cột ngày

Ví dụ

Nếu bạn muốn xác định sự khác biệt giữa hai ngày nhưng không muốn thiết lập một ngày mới thì sao?

đầu ra

print["The overall time that this employee worked in our company was:" + str[quit_date - hire_date].split[','][0]+"."]
2

Giải thích mã

Đầu tiên, một Khung dữ liệu với các cột được tuyển dụng và loại bỏ được tạo. Kết quả được lưu vào df. Hai dòng tiếp theo thêm hai hàng vào DataFrame df và lưu dữ liệu vào biến có liên quan [df. thuê hoặc df. Bị sa thải]. Sau đó, một đối tượng Datetime được tạo từ hai dòng này và được lưu trữ vào biến có liên quan đã nêu ở trên. Nó trừ hai ngày và lưu kết quả vào diff

Phần kết luận

datetime là tập hợp Ngày và Giờ với các thuộc tính năm, tháng, ngày, giờ, phút, giây, micro giây và tzinfo. timedelta[] được sử dụng để thao tác ngày. Tính toán sự khác biệt giữa timedelta và datetime. biến ngày để trả về đầu ra mong muốn i. e để trừ một ngày từ ngày Python

Chủ Đề