はじめに
曜日のインデックスや配列を代入する際の命名にいつも悩んでいたので、各種ライブラリや著名なプログラミング言語などを参考に、最適解を探ってみました。
筆者はフロントエンドエンジニアですので、JavaScript ベースの内容になります。
const date = new Date();
const {変数名} = date.getDay();
const {変数名} = ['日', '月', '火', '水', '木', '金', '土'];
命名の候補一覧
各種ライブラリやプログラミング言語などを調査したところ、広く採用されているのは以下の3つです。
- day
- day of week
- weekday
| 命名 | ライブラリ・言語など | プロパティ・メソッドなど |
|---|---|---|
| day | JavaScript | Date.prototype.getDay() |
| date-fns | getDay() / dayValues | |
| Day.js | day() | |
| day of week | JavaScript | Temporal.PlainDate.prototype.dayOfWeek |
| FullCalendar | daysOfWeek | |
| Java | getDayOfWeek() | |
| C# | DateTime.DayOfWeek | |
| V8 | FirstDayOfWeek / day_of_week | |
| Chromium | DayOfWeek() | |
| weekday | Day.js | weekday() / weekdays |
| Luxon | weekday / weekday() | |
| Python | datetime.weekday() | |
| C++ | weekday | |
| V8 | kShortWeekDays / weekdayFromEDaysOfWeek() | |
| Chromium | WeekDay() |
day
-
Date.prototype.getDay()などのメソッド名を参照。 - 「day」が「date」と混同される可能性があります。
example.js
const day = date.getDay(); // or dayIndex
const dayNames = ['日', '月', ..., '土'];
const dayName = dayNames[day];
day of week
- Temporal API や Java の
getDayOfWeek()などで採用されています。 - 各種翻訳サービス(Google翻訳、DeepL翻訳、Weblio翻訳)での直訳(「day of the week」含む)もこれ。
example.js
const dayOfWeek = date.getDay(); // or dayOfWeekIndex
const dayOfWeekNames = ['日', '月', ..., '土'];
const dayOfWeekName = dayOfWeekNames[dayOfWeek];
weekday
- Python などで採用されています。
-
Intl.DateTimeFormatやDate.prototype.toLocaleDateString()のオプションにも採用。 - 「weekday」の直訳は「平日」なので、意味が混同される可能性があります。
example.js
const weekday = date.getDay(); // or weekdayIndex
const weekdayNames = ['日', '月', ..., '土'];
const weekdayName = weekdayNames[weekday];
どれがいいのか
「day」の場合、「date」と混同したり、日付や日にちの意味に捉えられたりするので避けるべきかと思います。
また、「weekday」のパターンだと、平日(weekday)や週末(weekend)に絡む処理がある場合、混乱のもとになる可能性もあります。
そういった観点では「day of week」がベターだと思います。
もちろん、ケースバイケースだと思いますが、個人的には「day of week」を最適解として結論づけようと思います。