コンテンツへスキップ
🛠️ToolsShed

季節計算機

任意の日付と半球の現在の気象学的な季節を検索します。

❄️

Winter

12, 1, 2

🌸

Spring

3, 4, 5

☀️

Summer

6, 7, 8

🍂

Autumn

9, 10, 11

このツールについて

季節は地球の23.5°の軸傾斜が太陽の周りを公転することで生じる、気候パターンの自然なサイクルです。特に温帯地域で重要な概念で、屋外活動の計画、天気予報、季節的なトレンド追跡、気候パターンの研究など、多くの場面で役立ちます。しかし、与えられた日付がどの季節に属するかを正確に判定するには、気象学的な季節の定義を理解する必要があります。

このツールは、任意の日付を入力して、北半球または南半球のどちらかに対して、その日がいつの季節に当たるかを計算します。日付と半球を選択して「Find Season」をクリックすると、その季節の名前、開始日と終了日、季節開始からの経過日数、そして残りの日数を確認できます。結果には各季節を表す絵文字付きの視覚的なサマリーカードが含まれます。

気象学的季節はカレンダーの月に基づいて定義されます(北半球では春:3月~5月、夏:6月~8月、秋:9月~11月、冬:12月~2月)。これにより、至分点や分点に基づく天文学的季節よりもシンプルで一貫性が高くなります。このツールは、気象予報士、教育者、学生、異なる半球への旅行を計画する旅行者、そして季節の時期に興味のある人全般に役立ちます。

よくある質問

コード実装

from datetime import date

def get_meteorological_season(month: int, hemisphere: str = "northern") -> str:
    """Get meteorological season for a given month."""
    northern = {
        12: "Winter", 1: "Winter", 2: "Winter",
        3: "Spring", 4: "Spring", 5: "Spring",
        6: "Summer", 7: "Summer", 8: "Summer",
        9: "Autumn", 10: "Autumn", 11: "Autumn",
    }
    southern = {
        12: "Summer", 1: "Summer", 2: "Summer",
        3: "Autumn", 4: "Autumn", 5: "Autumn",
        6: "Winter", 7: "Winter", 8: "Winter",
        9: "Spring", 10: "Spring", 11: "Spring",
    }
    if hemisphere.lower() == "southern":
        return southern[month]
    return northern[month]

def season_dates(month: int, year: int, hemisphere: str = "northern") -> dict:
    """Get season start/end dates for the given month."""
    season = get_meteorological_season(month, hemisphere)
    if hemisphere.lower() == "southern":
        starts = {"Summer": 12, "Autumn": 3, "Winter": 6, "Spring": 9}
    else:
        starts = {"Spring": 3, "Summer": 6, "Autumn": 9, "Winter": 12}

    start_month = starts[season]
    start_year = year if start_month <= month else year - 1
    start = date(start_year, start_month, 1)
    end_month = (start_month + 2) % 12 + 1
    end_year = start_year + (1 if start_month + 2 > 12 else 0)
    import calendar
    end_day = calendar.monthrange(end_year, end_month)[1]
    end = date(end_year, end_month, end_day)
    return {"season": season, "start": start.isoformat(), "end": end.isoformat()}

today = date.today()
info = season_dates(today.month, today.year)
print(f"Season: {info['season']} ({info['start']} to {info['end']})")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.