Python 负时间应该如何工作?
我正在尝试创建一个Python 负时间应该如何工作?,python,time,python-3.x,negative-number,Python,Time,Python 3.x,Negative Number,我正在尝试创建一个Time-类,它可以处理格式为hh:mm:ss的时间。 这就是我所拥有的: class Time(object): def __init__(self, h=0, m=0, s=0): #private self.__hours = 0 self.__minutes = 0 self.__seconds = 0 #public self.hours = h
Time
-类,它可以处理格式为hh:mm:ss
的时间。
这就是我所拥有的:
class Time(object):
def __init__(self, h=0, m=0, s=0):
#private
self.__hours = 0
self.__minutes = 0
self.__seconds = 0
#public
self.hours = h
self.minutes = m
self.seconds = s
@property
def hours(self):
return self.__hours
@hours.setter
def hours(self, value):
if value < 0:
raise ValueError
self.__hours = value
@property
def minutes(self):
return self.__minutes
@minutes.setter
def minutes(self, value):
if value < 0:
raise ValueError
self.hours += int(value / 60)
self.__minutes = value % 60
@property
def seconds(self):
return self.__seconds
@seconds.setter
def seconds(self, value):
if value < 0:
raise ValueError
self.minutes += int(value / 60)
self.__seconds = value % 60
上课时间(对象):
定义初始化(self,h=0,m=0,s=0):
#私人的
自身工作时间=0
自身。_分钟=0
self.\uu秒=0
#公开的
self.hours=h
self.minutes=m
self.seconds=s
@财产
def小时数(自我):
返回自我。\u小时
@塞特先生
def小时数(自身、数值):
如果值<0:
升值误差
self.\uuu小时=值
@财产
def分钟数(自我):
返回自我。\u分钟
@二传手
def分钟数(自身、数值):
如果值<0:
升值误差
self.hours+=int(值/60)
self.\uu分钟=值%60
@财产
def秒数(自我):
返回自我。秒
@二传手
def秒数(自身,数值):
如果值<0:
升值误差
self.minutes+=int(值/60)
self.\uu秒=值%60
我对负时间值有问题。
我要做的是检查时间值(例如,minutes
)是否设置为负值,如果设置为负值,则引发ValueError
。
但问题是,我也希望使用负时间格式,我只是不确定如何使用
负时间值应该如何表现?
用我的二传手能做到吗?
我真的无法开始,我不需要你为我编写代码,但至少给出一些提示并解释消极时间是如何工作的。时间有两个概念:
- 瞬间
- 两个瞬间之间的长度(时间跨度或时间增量)
因此:
- Timespan或肯定可以是负数(作为一个整体)
- 瞬间也可以是负的,因为里面有一个时间跨度(比如公元前3000年),但实际的格式没有负系数(说“14:-3”或“6月5日”是没有意义的)
因此:
- 瞬间将
设置为负数应为minutes
ValueError
- 可能有一种方法
相当于.later(分钟=10)
。previous(分钟=10)
self.hours
等没有意义,因为无论如何都将使用同名的@属性
描述符。我认为您将时间增量与绝对时间混淆了。这是一个类建模绝对时间,一天中的一个时间。时间增量对相对时间进行建模,这可能是负数。请仔细查看datetime
模块。