第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Python:如何檢查時(shí)間是否超過指定時(shí)間?

Python:如何檢查時(shí)間是否超過指定時(shí)間?

一只名叫tom的貓 2023-10-26 16:55:55
我正在嘗試編寫一個(gè)停車場收費(fèi)計(jì)算器。提供多種費(fèi)率:上午 7 點(diǎn)至晚上 10.30 - 每 30 分鐘 0.60 美元 夜間費(fèi) 晚上 10.30 至上午 7 點(diǎn) - 固定費(fèi)用 5 美元如果停車時(shí)間從白天費(fèi)率溢出到夜間費(fèi)率,我該如何計(jì)算?下面是我現(xiàn)在所在的位置。我不確定從這里該去哪里,或者這是否是正確的開始方式。def getCharge(self, endTime, startTime, rate):    endTime = datetime.strptime(endTime, '%d/%m/%Y %H:%M')    startTime = datetime.strptime(startTime, '%d/%m/%Y %H:%M')    # elapsedDays = (endTime - startTime).days    # print(elapsedDays)    duration = (endTime - startTime).total_seconds() / 60    print(duration)    blocks = math.ceil( duration / 30 )    print(blocks)    charge = blocks * rate    return charge總結(jié)一下:如果停車時(shí)間超過晚上 10.30(將收取夜間平價(jià)費(fèi)用),我該如何添加支票如果停車時(shí)間超過夜間時(shí)間并進(jìn)入第二天早上7點(diǎn)后,如何添加支票(前一天的日費(fèi)+夜間費(fèi)+第二天的日費(fèi))
查看完整描述

2 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

根據(jù) Alex 的回答,這里有一個(gè)稍微優(yōu)化和改進(jìn)的解決方案:


import datetime


HALFHOUR_RATE = 0.6

NIGHT_FEE = 5


def get_charge2(start_datetime, end_datetime):

    tmp_datetime = start_datetime

    charged = 0


    while tmp_datetime < end_datetime:

        if tmp_datetime.hour >= 7 and tmp_datetime.hour < 22 or (tmp_datetime.hour == 22 and tmp_datetime.minute < 30):

            # It is a day [7, 22:30)

            charged += HALFHOUR_RATE * 10 # avoid rounding error

            tmp_datetime += datetime.timedelta(minutes=30)

        else:

            # It is a night [22:30, 7)

            charged += NIGHT_FEE * 10  # avoid rounding error

            tmp_datetime += datetime.timedelta(hours=8.5) # night == 8.5 hours

   

    return charged/10 # adjust result


查看完整回答
反對 回復(fù) 2023-10-26
?
白板的微信

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊

最簡單的方法是每 30 分鐘迭代一次并以這種方式計(jì)算費(fèi)用。


HALFHOUR_RATE = 0.6

NIGHT_FEE = 5



def get_charge(start_datetime, end_datetime):

    tmp_datetime = start_datetime

    charged = 0

    last_night_charged_day = None


    while tmp_datetime < end_datetime:

        if tmp_datetime.hour >= 22 or tmp_datetime.hour < 7:

            if tmp_datetime.hour == 22 and tmp_datetime.minute < 30:

                # Still not a night

                charged += HALFHOUR_RATE

            # It is a night

            else:

                day = tmp_datetime.day

                if tmp_datetime.hour < 7:

                    day -= 1

                if day != last_night_charged_day:

                    last_night_charged_day = day

                    # Charge one time night fee

                    charged += NIGHT_FEE

        else:

            # It is a day

            charged += HALFHOUR_RATE

        tmp_datetime += datetime.timedelta(minutes=30)


    return charged


查看完整回答
反對 回復(fù) 2023-10-26
  • 2 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號