0

Timeformat の時間を処理できる -classを作成しようとしています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

負の時間値に問題があります。私がしていることは、時間の値 (例: minutes) が負に設定されているかどうかを確認し、そうであれば a を上げるValueErrorことです。しかし、問題は、負の時間形式も使用したいのですが、方法がわかりません。

負の時間値はどのように動作する必要がありますか? 私のセッターで達成することさえ可能ですか?私は本当に始めることさえできません。私のためにコーディングする必要はありませんが、少なくともいくつかのヒントを提供し、負の時間がどのように機能するかを説明してください。

4

1 に答える 1

1

時間には 2 つの概念があります。

  • ある瞬間(瞬間)
  • 2 つの瞬間の間の長さ (タイムスパンまたは時間デルタ)。

タイムスパンは秒単位および秒の倍数単位で測定されます。

時間の瞬間は、同じ単位を使用して記述され、基準時間 (紀元前 0 時や Unix エポックなど) の間のタイムスパンとして理解されます。(ただし、単位はより複雑です。通常の秒の倍数ではなく、特定の時点に「7 月 16 日」などのわかりやすい名前を割り当てるカレンダーを使用します)。


そう:

  • タイムスパンまたは確かに負になる可能性があります(全体として)
  • 内部にタイムスパンがあるため(紀元前-3000年など)、インスタントも負になる可能性がありますが、実際の形式には負の係数はありません(「14:-3」または「6月-5日」と言っても意味がありません)。 .

そう:

  • minutes瞬時に負に設定するとValueError
  • .later(minutes=10)と同等のメソッドが存在する可能性があり.earlier(minutes=-10)ます。
于 2013-05-09T15:11:37.927 に答える