Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで指定範囲内のうるう日の合計数を取得する方法

Pythonの標準ライブラリ「calendar」には、指定した範囲内の年に含まれるうるう日の合計数を求めるための専用関数が用意されています。それが calendar.leapdays(y1, y2) です。

この関数は、範囲 [y1, y2) 内の年に含まれるうるう日の総数を返します。つまり、開始年 y1 は範囲に含まれますが、終了年 y2 自体は含まれない点に注意してください。うるう日は、4で割り切れる年(ただし100で割り切れかつ400で割り切れない年を除く)に発生します。

使用例

以下の例では、1995年から2018年までの範囲内のうるう日の合計数を取得しています。

import calendar

result = calendar.leapdays(1995, 2018)
print(result)

出力

このコードを実行すると、次のような結果が得られます。

6

解説

1995年から2017年までの間に該当するうるう年は、1996年、2000年、2004年、2008年、2012年、2016年の6つです。そのため、出力結果は「6」となります。なお、2018年は終了年として範囲に含まれていないため、2018年自体がうるう年であってもカウントされません。

この関数を使えば、日付計算や期間の集計処理などで、うるう日の影響を簡単に考慮することができます。

  1. Pythonでリストのサイズ(要素数)を取得する方法|len関数の使い方を解説

    Pythonでリストのサイズ(要素数)を調べたいときは、組み込み関数 len() を使います。これは最もシンプルで標準的な方法です。len() 関数とはPython公式ドキュメントでは、len() について次のように説明されています。「len(arg) はオブジェクトの長さ(要素の数)を返します。引数には、文字列・bytes・タプル・リスト・range などのシーケンス、あるいは辞書・セット・frozenset などのコレクションを指定できます。」len() は組み込み関数であるため、追加のインポートは不要です。また、ユーザー定義クラスが特殊メソッド __len__ を実装していれば、そのクラ

  2. Pythonで生のデバイス番号からデバイスのメジャー番号を取得する方法

    Pythonのos.major(device)メソッドは、生のデバイス番号(通常はos.stat()やos.lstat()が返すst_devまたはst_rdevフィールド)から、デバイスのメジャー番号を抽出します。 LinuxなどのUNIX系システムでは、デバイスファイルは「メジャー番号」と「マイナー番号」という2つの数値で識別されます。メジャー番号はそのデバイスを制御するドライバ(デバイスの種類)を表し、マイナー番号は同じドライバが扱う個々のデバイスを区別するために使われます。 使用例 このメソッドを使うには、あらかじめ生のデバイス番号を取得しておく必要があります。os.lstat()でフ