Tuesday, April 27, 2021

Perkalian waktu di Python

Ada kalanya kita ingin mengalikan waktu agar kita mengetahui jumlah jam yang kita gunakan untuk mengerjakan sesuatu, misalnya jam kerja. Dengan cara biasa, jam:detik tidak bisa dikalikan. Cara berikut dapat digunakan untuk mengetahui berapa lama kita seharusnya menggunakan waktu tersebut. Misalnya, jika perhari kita "hanya" dialokasikan waktu tujuh jam empat puluh lima menit (ditulis "7:45"), berapa waktu (lagi "jam:menit") yang boleh dan harus kita gunakan untuk berkerja?
import datetime

# waktu kerja per hari, 7 jam 45 menit
t1 = datetime.timedelta(hours=7, minutes=45) 

# waktu kerja sebulan, 21 hari
t2 = t1 * 21


# fungsi untuk konversi jam dan menit
def sec2hourmin(t2_datetime):
	hours seconds = divmod(t2_datetime.total_seconds(), 3600)
    minutes, x  = divmod(seconds, 60)
    return hours, minutes

print(sec2hourmin(t2))
Dengan cara ini, kita bisa mendapatkan jumlah jam yang harus kita kerjakan untuk mengerjakan sesuatu (kerja) dalam sebulan. Agar lebih elegan, teknik di atas dapat kita konversi menjadi skrip python dengan argumen jumah hari untuk menghasilkan output "jam:menit" perbulannya.
# function to calculate hours and minutes per month for work
# input argument: # days (integer)
# example python3 days_to_hours.py 21

import sys
import datetime

def days2hours(days):
    tpday = datetime.timedelta(hours=7, minutes=45)
    tpmonth = tpday * days
    hours, seconds = divmod(tpmonth.total_seconds(), 3600)
    minutes, x  = divmod(seconds, 60)
    return int(hours), int(minutes)

hours, minutes = days2hours(int(sys.argv[1])) 
print('{}:{}'.format(str(hours), str(minutes)))
Ketik skrip di atas di editor dan simpan sebagai day_to_hour.py. Cara menggunakan skrip di atas adalah sebagai berikut.
# Jika sebulan ada 21 hari kerja
$ python3 day_to_hour.py 21
162:45
Artinya, dalam bulan itu ada 21 hari kerja; kita hanya diperbolehkan dan diharuskan bekerja selama 162 jam dan 45 menit.
Related Posts Plugin for WordPress, Blogger...