NO IMAGE

色々な言語の曜日と数値の対応

  • 2021年8月6日
  • 2021年8月6日
  • 言語
NO IMAGE

 よく日付の管理において曜日を取り扱うことがあります。おおむね世界共通で一週間は7日ですが、各日の曜日を表す文字列は様々です。このためプログラミング言語の中において、曜日は数値で扱われます。次に上げるのは各言語の曜日と数値の対応表です。

日本語
JavaScript 0 1 2 3 4 5 6
PHP 0 1 2 3 4 5 6
ISO 8601 7 1 2 3 4 5 6
MySQL 1 2 3 4 5 6 7
Python 6 0 1 2 3 4 5
Go 0 1 2 3 4 5 6

Date.prototype.getDay() – JavaScript | MDN
PHP: DateTime::format – Manual
MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.7 日付および時間関数
datetime — 基本的な日付型および時間型 — Python 3.9.4 ドキュメント
time · pkg.go.dev
 日曜を 0 とするのが多数派ですが、案外違いがあります。都度次のような言語用の定数を用意しておくと言語を渡って何かをする際に便利です。

const SQL_DAY_OF_WEEK = {
  SUNDAY: 1,
  MONDAY: 2,
  TUESDAY: 3,
  WEDNESDAY: 4,
  THURSDAY: 5,
  FRIDAY: 6,
  SATURDAY: 7,
};

export const useSqlDayOfWeekOptions = (selectedValue?: unknown): SelectOption[] => {
  if (typeof selectedValue === 'string' && selectedValue.match(/^[1-7]$/)) {
    selectedValue = Number(selectedValue);
  }
  return [
    { label: '月曜日', value: SQL_DAY_OF_WEEK.MONDAY, selected: selectedValue === SQL_DAY_OF_WEEK.MONDAY },
    { label: '火曜日', value: SQL_DAY_OF_WEEK.TUESDAY, selected: selectedValue === SQL_DAY_OF_WEEK.TUESDAY },
    { label: '水曜日', value: SQL_DAY_OF_WEEK.WEDNESDAY, selected: selectedValue === SQL_DAY_OF_WEEK.WEDNESDAY },
    { label: '木曜日', value: SQL_DAY_OF_WEEK.THURSDAY, selected: selectedValue === SQL_DAY_OF_WEEK.THURSDAY },
    { label: '金曜日', value: SQL_DAY_OF_WEEK.FRIDAY, selected: selectedValue === SQL_DAY_OF_WEEK.FRIDAY },
    { label: '土曜日', value: SQL_DAY_OF_WEEK.SATURDAY, selected: selectedValue === SQL_DAY_OF_WEEK.SATURDAY },
    { label: '日曜日', value: SQL_DAY_OF_WEEK.SUNDAY, selected: selectedValue === SQL_DAY_OF_WEEK.SUNDAY },
  ];
};
>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG