當(dāng)前位置:財(cái)稅問題 >
實(shí)務(wù)
問題已解決
如果我計(jì)算加班,超過20分鐘計(jì)半小時(shí),達(dá)到50分鐘算1小時(shí), 這個(gè)函數(shù)該如何寫
溫馨提示:如果以上題目與您遇到的情況不符,可直接提問,隨時(shí)問隨時(shí)答
速問速答函數(shù)的格式如下:
def overtime(minutes):
hours = 0
if minutes < 0:
return -1
elif minutes <= 20:
hours = 0
elif minutes <= 50:
hours = 0.5
else:
hours = 1 + (minutes-50)/60
return hours
加班時(shí)間的計(jì)算其實(shí)也可以用科學(xué)計(jì)算方法來實(shí)現(xiàn),我們知道,1分鐘等于60秒,1小時(shí)等于60分鐘,因此,把超過20分鐘計(jì)半小時(shí),達(dá)到50分鐘算1小時(shí)這樣的計(jì)算標(biāo)準(zhǔn),我們可以表示為:20 x 60 = 50 x 60 x 0.5,所以可以用算式來表示:
hours = (minutes - 20 * 60) / (60 * 60)
其中,minutes為傳入的時(shí)間值,表示以分鐘為單位的加班時(shí)間。這樣,我們可以得到一個(gè)更加簡潔的函數(shù)實(shí)現(xiàn):
def overtime(minutes):
if minutes < 0:
return -1
else:
return (minutes - 20 * 60) / (60 * 60)
拓展知識(shí):
計(jì)算加班時(shí)間的函數(shù)可以使用條件分支的方式來實(shí)現(xiàn),也可以使用算術(shù)運(yùn)算的方式來實(shí)現(xiàn),當(dāng)然,同樣還可以使用更復(fù)雜的算法,比如構(gòu)建一個(gè)樹來實(shí)現(xiàn)計(jì)算,或者使用分支定界算法。
2023 01/24 16:53
閱讀 108