GNU/Linux >> Linux の 問題 >  >> Linux

Date コマンドが 12 月 31 日の間違った週番号を与える

これにより、月曜日から始まる ISO の週が表示されます。

<ブロック引用>

ISO 週日付システムは、1988 年 (2004 年に最終改訂) 以降、国際標準化機構 (ISO) によって発行された ISO 8601 日付と時刻の標準の一部である実質的な閏週カレンダー システムであり、それ以前は、 ISO (R) 2015 は 1971 年から採用されています。(主に) 政府や企業の会計年度、および計時で使用されています。これは、以前は「産業用日付コーディング」と呼ばれていました。システムは、年の序数の週の表記法を定義することにより、グレゴリオ暦の上にある週の年を指定します。


<ブロック引用>

ISO の週番号の年 (非公式に ISO 年とも呼ばれます) には、52 または 53 の完全な週があります。これは、通常の 365 日または 366 日ではなく、364 日または 371 日です。 ISO 8601 ではこの用語を使用していませんが、特別な週はうるう週と呼ばれることもあります。

週は月曜日から始まります。毎週の年は、木曜日が属するグレゴリオ暦の年です。したがって、年の最初の週には常に 1 月 4 日が含まれます。したがって、ISO の週の年番号は、1 月 1 日に近い数日間、グレゴリオ暦からわずかにずれています。

12/31 を 52 週として表示したい場合は、 %U を使用する必要があります 、ISO 標準を使用しない:

$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
$ date -d "2018-12-31T1:58:55" +"%U%a"
52Mon

週番号の定義は、ヨーロッパとアメリカで異なります。おそらく、ISO 標準と ANSI 標準です。これは、1 週間が日曜日 - 土曜日または月曜日 - 日曜日であることに関連している可能性があり、これもまた、主日のユダヤ人対キリスト教の定義 (安息日 vs 日曜日) に関連している可能性があります。

ヨーロッパの場合、週番号 1 には 1 月の第 1 木曜日が含まれるため、新年 (木、金、土、日) に属する最低 4 日 (つまり過半数) が含まれます。

とにかく、すべての (!!) 週数がヨーロッパとアメリカで +/- 1 異なる年には、多国籍企業でスケジュールを設定するのがとても楽しくなります。 :-)


Linux
  1. 現在の週の月曜日の日付を出力します (bash で)

  2. 月の週数を決定する方法

  3. gpspipe は正しいタイムスタンプを返すが、日付が間違っている (1995 年 12 月 21 日)

  1. Bash履歴で実行する各コマンドの日付と時刻を設定する

  2. Linuxでの8つのクイック日付コマンドの例

  3. 初心者向けのDNFコマンドの例

  1. 初心者向けのLinux日付コマンドチュートリアル(8例)

  2. 支払いまでの日数を計算しますか?

  3. N 個のパケットに対してのみ Ping コマンドを実行する方法