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