見出し画像

新卒Java研修 その7

時刻の足し算プログラム

import java.util.*;
public class Timer {
	public static void main(String[] args) {
		System.out.println("現在の時刻を教えてください");
		System.out.println("例:朝7時なら、07:00");
		
		//現在の時刻を1行の文字列で取得
		Scanner sc = new Scanner(System.in);
		String nowTime = sc.next();
		
		
		//nowTimeの0~2文字目、3~5文字目を抽出し、int型に変換
		int nowHour = Integer.parseInt(nowTime.substring(0, 2));
		int nowMin = Integer.parseInt(nowTime.substring(3, 5));
		
		System.out.println("タイマーを何分後に設定しますか?");
		System.out.println("例:2時間半なら、02:30");
		
		
		//タイマーをかける時間を入力
		String sleepTime = sc.next();
		
		
		//現在時刻と同じようにint型に変換
		int sleepHour = Integer.parseInt(sleepTime.substring(0, 2));
		int sleepMin = Integer.parseInt(sleepTime.substring(3, 5));
		
		
		//現在時刻とタイマー時刻を、それぞれ時間と分に分けて足す
		int wakeHour = nowHour + sleepHour;
		int wakeMin = nowMin + sleepMin;
		
		
		//wakeMinが60以上なら、時間を繰り上げて、分数から60を引く
		if(wakeMin >= 60) {
			wakeMin -= 60;
			wakeHour += 1;
		} 
		
		
		//wakeHourが24を超えていたら、24を引く
		if(wakeHour >= 24) {
			wakeHour -= 24;
		}
		
		
		//一桁のときには10の位に0をつけて出力したいから
		//wakeMinとwakeHourをそれぞれString型にする
		String wakeTimeHour = Integer.toString(wakeHour);
		String wakeTimeMin = Integer.toString(wakeMin);
		
		
		//文字列の長さが1のときは前に0をつける
		if(wakeTimeHour.length() == 1) {
			wakeTimeHour = "0" + wakeTimeHour;
		}
		
		if(wakeTimeMin.length() == 1) {
			wakeTimeMin = "0" + wakeTimeMin;
		}
		
		System.out.println("かしこまりました");
		System.out.println(wakeTimeHour + ":" + wakeTimeMin + "にアラームを設定します!");
	}
}

実行結果

現在の時刻を教えてください
例:朝7時なら、07:00
23:00
タイマーを何分後に設定しますか?
例:2時間半なら、02:30
08:00
かしこまりました
07:00にアラームを設定します!

学んだポイント

・lengthメソッド:String型の変数名.length()で文字列の長さ、文字数を取得できる。

・substringメソッド:String型の変数名.substring(0, 2)で文字列の0~2番目の文字を抽出できる。

1週間お疲れ様です!来週も頑張りましょう!



この記事が気に入ったらサポートをしてみませんか?