![見出し画像](https://assets.st-note.com/production/uploads/images/51824799/rectangle_large_type_2_8d8ccf0d9442701faa243b4ccd7123d0.jpeg?width=800)
Photo by
shinsukesugie
新卒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週間お疲れ様です!来週も頑張りましょう!
この記事が気に入ったらサポートをしてみませんか?