3

コードは次のページからのものです: https ://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_sorts.pyx

コードスニペットは次のとおりです。

cpdef double epoch_seconds(date):
"""Returns the number of seconds from the epoch to date. Should
   match the number returned by the equivalent function in
   postgres."""
td = date - epoch
return td.days * 86400 + td.seconds + (float(td.microseconds) / 1000000)

と同じtd.days * 86400ようにすべきだと思いますが、なぜ彼らは単にtd.secondsを3倍にしないのだろうかと思っていました。td.seconds(float(td.microseconds) / 1000000)

4

2 に答える 2

7

あなたの仮定は間違っており、それがこの継ぎ目が奇妙な理由です。td.days正しく想定したエポックからの日数が含まれますがtd.secondstd.microseconds1日の開始からの秒数と、秒の開始からのマイクロ秒数がそれぞれ含まれます。したがって、戻り値は、コンマの後の部分としてマイクロ秒を含むエポックからの秒数になります。

于 2012-12-31T14:40:13.000 に答える
2

td.daysは整数の日数であり、1日の端数は切り捨てられます。同様に、td.secondsはその「1日の端数」内の整数秒数であり、1秒の端数は切り捨てられます。したがって、コンポーネントをつなぎ合わせる必要があります。

于 2012-12-31T14:39:46.183 に答える