もちろん、これを自分で書くこともできますが、車輪の再発明をする前に、これをすでに行っている関数はあるでしょうか?
ベストアンサー1
x
次のような例を考えてみましょう日付時刻.日付は、(x.month-1)//3
四半期を返します (第 1 四半期の場合は 0、第 2 四半期の場合は 1 など。代わりに 1 から数える必要がある場合は 1 を追加します)。
元々、multiply が賛成票を投じ、元々承認されていた 2 つの回答 (現在は両方とも削除済み) にはバグがありました。つまり、-1
除算の前に を実行しておらず、3 ではなく 4 で割っていました。.month
は 1 から 12 までなので、どの式が正しいかを自分で簡単に確認できます。
for m in range(1, 13):
print m//4 + 1,
print
1 1 1 2 2 2 2 3 3 3 3 4
2 つの 4 か月四半期と 1 つの 1 か月四半期 (eep)が提供されます。
for m in range(1, 13):
print (m-1)//3 + 1,
print
与える1 1 1 2 2 2 3 3 3 4 4 4
-- これで、あなたにとってはるかに好ましいように見えませんか?-)
これは、この質問が十分に正当化されていることを証明していると思います;-)。
datetime モジュールには、必ずしもあらゆる便利なカレンダー関数が含まれている必要はないと思いますが、datetools
職場の自分の (および他の人の) プロジェクトで使用するために (十分にテストされた;-) モジュールを維持していることはわかっています。このモジュールには、これらすべてのカレンダー計算を実行するための小さな関数が多数含まれています。複雑なものもあれば、単純なものもありますが、作業を何度も繰り返したり (単純な作業であっても)、そのような計算でバグが発生するリスクを冒したりする理由はありません;-)。