将当前时间缩放到python中的范围

我想在一个范围内缩放当前时间。就像我的开始时间是08:00小时,结束时间是19:00小时,这是11个小时。我的开始时间的标度值应为0,结束时间的标度值应为11。像10:00和10:30这样的时间应分别标度为1和1.5。我的代码

from datetime import datetime

now = datetime.now()

current_time = now.strftime("%H:%M")

start_time = '08:00'
end_time = '19:00'

上面的代码将变量作为字符串读取,我无法对其进行计算。有人可以帮助我实现扩展吗?

谢谢

ys121212 回答:将当前时间缩放到python中的范围

now.strftime("%H:%M")更改为now.strftime("%H%M")

通过这种方式,您可以将其转换为整数,因此您拥有1000而不是10:00,并且可以使用加法和减法

,

您可以使用datetime.hourdatetime.minute从时间中提取小时和分钟。

要获得所需的比例值,请在指定的范围(08:00至19:00)内使用:

from datetime import datetime

now = datetime.now()

if(8 <= now.hour <= 19):
    scaled_time = now.hour - 8
    scaled_time += now.minute / 60 

希望有帮助。

编辑:您可以将8和19更改为包含开始时间和结束时间的变量,因此可以轻松对其进行修改

,

您可以将两个日期时间对象相减得到的timedelta对象相除。

private static void Write(Expression expression)
{   
    Console.WriteLine(((MemberExpression)expression.Body).Member.GetCustomAttribute<XmlElementAttribute>().ElementName);
}

private static void Main(string[] args)
{
    Write(Expression.Property(Expression.New(typeof(Derived).GetConstructors()[0]),"Code"));
    Write(Expression.Property(Expression.TypeAs(Expression.New(typeof(Derived).GetConstructors()[0]),typeof(Base)),"Code"));
}
,

8到19恰好是11个小时,因此您无需缩放它,只需使用当前时间减去8点钟即可。因此问题就出在将字符串更改为十进制小时。

array
本文链接:https://www.f2er.com/2892659.html

大家都在问