Saya memiliki dua tanggal yang berbeda dan saya ingin tahu perbedaan hari di antara mereka. Format tanggalnya adalah YYYY-MM-DD.
Saya memiliki fungsi yang dapat MENAMBAHKAN atau MENGUNDANG nomor yang diberikan ke suatu tanggal:
def addonDays(a, x):
ret = time.strftime("%Y-%m-%d",time.localtime(time.mktime(time.strptime(a,"%Y-%m-%d"))+x*3600*24+3600))
return ret
di mana A adalah tanggal dan x jumlah hari yang ingin saya tambahkan. Dan hasilnya adalah kencan lain.
Saya memerlukan fungsi di mana saya dapat memberikan dua tanggal dan hasilnya akan menjadi int dengan perbedaan tanggal dalam hari.
Jawaban:
Gunakan
-
untuk mendapatkan perbedaan antara duadatetime
objek dan mengambildays
anggota.sumber
(d2 - d1)
akan menjaditimedelta
objek.total_seconds
juga? Saya pikir ini penting karena itulah yang saya harapkan ketika saya mencobaseconds
tanpa membaca dokumen.Solusi singkat lainnya:
sumber
if
dalamdiff_dates
fungsi sama sekali tidak perlu? Dengan definisi nilai absolut,abs(date1-date2)
akan selalu sama denganabs(date2-date1)
.Saya mencoba kode yang diposting oleh larsman di atas tetapi, ada beberapa masalah:
1) Kode apa adanya akan melempar kesalahan sebagaimana disebutkan oleh mauguerra 2) Jika Anda mengubah kode sebagai berikut:
Ini akan mengonversi objek datetime Anda menjadi string tetapi, dua hal
1) Mencoba melakukan d2 - d1 akan gagal karena Anda tidak dapat menggunakan operator minus pada string dan 2) Jika Anda membaca baris pertama dari jawaban di atas yang dinyatakan, Anda ingin menggunakan - operator pada dua objek datetime tetapi, Anda hanya perlu mengubahnya menjadi string
Apa yang saya temukan adalah bahwa Anda benar-benar hanya memerlukan yang berikut ini:
sumber
datetime.strptime
untuk mengonversi string menjadidatetime
objek. Karena OP menyatakan bahwa "Format tanggal adalah YYYY-MM-DD", saya berasumsi bahwa tanggal diwakili sebagai string. Jika tidak, jelas tidak perlu konversi.Coba ini:
sumber
pd.date_range ('2019-01-01', '2019-02-01'). bentuk [0]
sumber