cal: dates before September 1752 use the Gregorian calendar

オープン
#684 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust
領域
cli

調査の方向性

Start by locating the Rust implementation and tests for cal, then compare its calendar calculations and option parsing with the examples in the issue. The requested behavior covers Julian dates, reform selection, ISO mode, and year bounds; done means the default output and supported options match the specified util-linux behavior, with tests covering the listed examples.

索引モデルが issue の本文から書いたものです。

説明

util-linux cal switches to the Julian calendar before the 1752 reform (its default --reform 1752), so September 1752 drops the 3rd to the 13th and earlier months keep their historical weekdays and leap days. cal here uses the Gregorian calendar for every year:

$ cal 9 1752                      util-linux 2.41.5           this cal
                                     September 1752           September 1752
                                  Su Mo Tu We Th Fr Sa     Su Mo Tu We Th Fr Sa
                                         1  2 14 15 16                    1  2
                                  17 18 19 20 21 22 23      3  4  5  6  7  8  9
                                  24 25 26 27 28 29 30     10 11 12 13 14 15 16 ...
  • cal 2 1700: util-linux has a 29th and starts on Thursday; here it ends on the 28th and starts on Monday.
  • cal 1 1: util-linux starts on Saturday, here on Monday.
  • cal -j 9 1752: util-linux numbers the days 245, 246, 258, 259...
  • --reform (1752|gregorian|iso|julian) and --iso are not accepted.

Year bounds also differ: util-linux rejects year 0 ("illegal year value: use positive integer") and accepts 10000, where this one shows January 0000 and rejects 10000 with "invalid date".

The output for 1753 and later already matches. Is following util-linux here wanted? If so I can send a PR: Julian weekdays and month lengths before 1752-09-14 by default, and --reform/--iso to choose.

Checked on main a3b2083 against util-linux 2.41.5 (Fedora 43).

主要言語
Rust
スター
230
フォーク
62
平均マージ
1日 2時間
マージ済み PR(30日)
23

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

uutils/util-linux のほかの issue

uutils/util-linux の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。