0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Javaで5のつく日曜日を出力するプログラム

Posted at

コードを書く練習として作ってみました。
Yahoo!ショッピングにて「5のつく日」と「毎週日曜日」はそれぞれ個別のキャンペーンで、「5のつく日曜日」はその2つが重なるダブルポイントアップデーです。

こちらは現在の日付から1ずつ日付を加算していき、
次の5のつく日曜日が出力されていくプログラムです。

プログラム要件

  • endと入力されるまで無限ループ
  • Enterキーを押すと1つずつ次の5のつく日曜日の年月日が表示される

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		Date date = new Date();
		Date d = null;
		int week = 0, day = 0;
		String pointday = "", str = "";

		// Date型の日時をCalendar型に変換
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);

		System.out.println("現在の日付から5のつく日曜日を表示します…");
		System.out.println("Enterキーを押すと次の日付を表示");
		System.out.print("endと入力するとループ終了");

		while (!(str.equals("end"))) {
			str = scanner.nextLine();
			while (!(str.equals("end"))) {
				// 日付を加算する
				calendar.add(Calendar.DATE, 1);
				// 曜日、日付の取得
				week = calendar.get(Calendar.DAY_OF_WEEK);
				day = calendar.get(Calendar.DATE);
				// 5の付く日曜日の日付の場合、年月日を出力
				if (week == 1 && (day == 5 || day == 15 || day ==25)) {
					d = calendar.getTime();
					pointday = new SimpleDateFormat("yyyy/MM/dd").format(d);
					System.out.print(pointday);
					break;
				}	
			}
		}
		scanner.close();
	}
}
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?