如何使用datetime和70分钟?

2024-09-30 00:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

当程序到达以下代码行时出现问题:

baggageDeliveryTime = datetime.datetime.strptime(baggageDeliveryTime, '%M')

当它到达这一行时,程序读取:

baggageDeliveryTime = datetime.datetime.strptime('70', '%M')

但分钟数只能增加到59分钟。
那么我如何修改下面的代码以使用超过59分钟的时间呢?你知道吗

flight = ('TAP98', 'Rio de Janeiro', '09:55', '323', '467')

import doctest, sort, datetime

def baggageEndDeliveryTime(flight):
    """
    Time that the delivery of all baggage is complete.
    Requires: flight is a tuple with four elements.
    Ensures: string which represents the time when the delivery of all baggage is complete.
    """
    baggageNumber = int(flight[4])

    baggageStartDeliveryTime = flight[2]
    baggageStartDeliveryTime = datetime.datetime.strptime(baggageStartDeliveryTime, "%H:%M")
    baggageStartDeliveryTime = datetime.timedelta(hours = baggageStartDeliveryTime.hour, minutes = baggageStartDeliveryTime.minute)

    baggageDeliveryTime = str(baggageNumber * 30 / 200)
    baggageDeliveryTime = datetime.datetime.strptime(baggageDeliveryTime, '%M')
    baggageDeliveryTime = datetime.timedelta(hours = baggageDeliveryTime.hour, minutes = baggageDeliveryTime.minute)

    baggageEndDeliveryTime = baggageStartDeliveryTime +  baggageDeliveryTime
    baggageEndDeliveryTime = baggageEndDeliveryTime.seconds
    baggageEndDeliveryTime = '{:02}:{:02}'.format(baggageEndDeliveryTime // 3600, baggageEndDeliveryTime % 3600 // 60)

    return baggageEndDeliveryTime

Tags: ofthe代码程序datetimeisallflight
2条回答

嗯。。。你完全倒退。。。你知道吗

如果要计算与交货时间结束时对应的日期时间: 您的飞机到达时间+需要取行李的时间。。。不是一个奇怪的计算时间Delta你的到达时间+日期时间奇怪地计算从时间需要的行李。。。你知道吗

和datetime对象具有格式化功能。。。你知道吗

def func(flight):
    nb_baggage = int(flight[4])

    start_time = datetime.datetime.strptime(flight[2], "%H:%M")
    delivery_time = datetime.timedelta(minutes=(nb_baggage * 30 / 200))
    end_time = start_time + delivery_time

    return end_time.strftime('%H:%M')

https://docs.python.org/3.4/library/datetime.html

 baggageDeliveryTime = datetime.datetime.strptime('0', '%M') + datetime.timedelta(seconds = 60 * 70)

也许吧?你知道吗

但正如在评论中指出的,你应该使用timedelta或者日期时间.time对象

相关问题 更多 >

    热门问题