Javaの曜日を取得する方法を解説!getDayOfWeekの使い方と表示テクニック
生徒
「Javaで特定の日付が何曜日かを調べたいんですが、何か方法ありますか?」
先生
「はい、JavaにはgetDayOfWeekというメソッドが用意されていて、それを使えば簡単に曜日を取得できますよ。」
生徒
「曜日って『MONDAY』とかで出てくるんですか?それとも日本語の『月曜日』とかも出せますか?」
先生
「基本は英語の定数ですが、ちゃんと日本語で表示する方法もありますよ。それじゃあ使い方を詳しく見ていきましょう!」
1. Javaで曜日を取得するには?LocalDateとgetDayOfWeekの基本
Javaで日付から曜日を取得するには、java.time.LocalDateクラスのgetDayOfWeekメソッドを使います。
このメソッドはDayOfWeekという列挙型(Enum)を返し、MONDAY〜SUNDAYのような形式で曜日を表します。
Javaで曜日を調べたい場面は、スケジュール管理、カレンダー機能、祝日判定など様々です。
では、実際にJavaで曜日を取得するコードを見てみましょう。
2. LocalDate.getDayOfWeekの使い方(基本)
まずは基本的な使い方から。以下は、特定の日付が何曜日かをgetDayOfWeekで取得し、画面に表示するJavaコードです。
import java.time.LocalDate;
import java.time.DayOfWeek;
public class DayOfWeekExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2025, 9, 3);
DayOfWeek dayOfWeek = date.getDayOfWeek();
System.out.println("曜日は: " + dayOfWeek);
}
}
曜日は: WEDNESDAY
3. 曜日を日本語で表示する方法
getDayOfWeekはデフォルトでは英語表記(MONDAYなど)を返しますが、これを日本語の「月曜日」「火曜日」などに変換するには、独自にマッピングする必要があります。
import java.time.LocalDate;
import java.time.DayOfWeek;
public class JapaneseDayExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2025, 9, 3);
DayOfWeek dayOfWeek = date.getDayOfWeek();
String[] japaneseDays = {"月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日", "日曜日"};
String japanese = japaneseDays[dayOfWeek.getValue() - 1];
System.out.println("日本語の曜日: " + japanese);
}
}
日本語の曜日: 水曜日
4. getValueメソッドで曜日の数値を取得する
DayOfWeekにはgetValue()メソッドが用意されており、1〜7の数値で曜日を取得できます。
これは1 = 月曜日〜7 = 日曜日の順になっているため、曜日を数値で管理したい場合に便利です。
import java.time.LocalDate;
import java.time.DayOfWeek;
public class DayValueExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2025, 9, 3);
DayOfWeek dayOfWeek = date.getDayOfWeek();
int value = dayOfWeek.getValue();
System.out.println("曜日の数値: " + value);
}
}
曜日の数値: 3
5. 今日の日付から曜日を取得する方法
LocalDate.now()を使えば、システム日付(今日)から簡単に曜日を取得できます。
毎日の処理や定期実行タスクなどで、今日が何曜日かをチェックする際に便利です。
import java.time.LocalDate;
public class TodayWeekExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("今日の曜日: " + today.getDayOfWeek());
}
}
6. Javaの曜日取得でよくある活用例
Javaで曜日を取得するgetDayOfWeekは、日常的なアプリケーションの中でさまざまな活用ができます。
以下はよくある活用パターンの例です。
- シフト管理アプリでの曜日表示
- 祝日・平日判定
- スケジュール通知やイベント告知
- カレンダー画面に曜日を表示
- 曜日に応じた割引や料金設定(例:水曜レディースデー)
曜日を扱うことは、ユーザーにとって直感的な情報提供につながるため、UI/UX改善にも大きく貢献します。
7. 曜日を略称で表示したいときは?
曜日を「月」「火」「水」など1文字で表示したい場合もあります。その場合は日本語配列を変えるだけで対応できます。
import java.time.LocalDate;
import java.time.DayOfWeek;
public class ShortDayExample {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2025, 9, 3);
String[] shortDays = {"月", "火", "水", "木", "金", "土", "日"};
String shortName = shortDays[date.getDayOfWeek().getValue() - 1];
System.out.println("略称: " + shortName);
}
}
略称: 水