回答:
推測では、配列へのインデックス付けに役立ちます。
月の表示文字列が配列に格納されていて、getMonth()を使用して正しい文字列を取得したいとします。
もちろん、なぜ配列がゼロから始まるのかは別の問題です
おそらく、返される値を取得するために呼び出されたCライブラリー呼び出しが、この方法で月を返します。
(そして、その設計の理由は、ライブラリ呼び出しがプログラムと共に実際に日付を出力するように設計されていたためであり、ゼロベースのインデックスを直接使用して月の名前を出力することができました)
struct tm
がそのようにしたからです。