前提・実現したいこと
1,キーボードで"yyyy/MM"の形式で年と月を入力
2,yyyy/MMで入力された数字をyyyy/MMで出力
現在は入力する際、
yyyy
MM
のような形で入力する方法しかわからない状態です、
キーボードでyyyy/MMの形式で入力する方法で何かいいやり方はありませんでしょうか。
また、2点目ですが、キーボードからMM(例:03)と入力しても
頭に0か付かずに出力されてしまいます。
こちらも解決法を教えて頂けると幸いです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
Java
1package calendar; 2 3import java.util.Calendar; 4import java.util.Scanner; 5 6 7public class Mycalendar { 8 9 public static void main(String[] args) { 10 java.util.Calendar cal = java.util.Calendar.getInstance(); 11 12 System.out.println("カレンダーを表示したい年月をYYYY/MMで指定してください"); 13 14 Scanner scan = new Scanner(System.in); 15 int year = scan.nextInt(); 16 int month = scan.nextInt(); 17 18 if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) { 19 System.out.println(" "); 20 System.out.println(year + "/" + month + "(うるう年)"); 21 System.out.println(" "); 22 System.out.println("日 月 火 水 木 金 土"); 23 System.out.println("---------------------"); 24 25 } else { 26 System.out.println(" "); 27 System.out.println(year + "/" + month); 28 System.out.println(" "); 29 System.out.println("日 月 火 水 木 金 土"); 30 System.out.println("---------------------"); 31 } 32 33 cal.set(Calendar.YEAR, year); 34 cal.set(Calendar.MONTH, month -1); 35 cal.set(Calendar.DATE, 1); 36 37 int week = cal.get(java.util.Calendar.DAY_OF_WEEK); 38 int lastDay = cal.getActualMaximum(java.util.Calendar.DAY_OF_MONTH); 39 40 int counter = 0; 41 42 for (int i = 1; i < week ; i ++) { 43 System.out.print(" "); 44 counter ++; 45 46 } 47 for (int day = 1 ; day <= lastDay; day ++) { 48 if (day < 10) { // ズレ 49 System.out.print(" " + day + " "); 50 } else { 51 System.out.print( day + " "); 52 53 } 54 counter ++; 55 56 if (counter == 7) { // 7日ごとに下段に 57 58 counter = 0; 59 System.out.println(); 60 } 61 } 62 } 63} 64
試したこと
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
タイトルは質問要件(起きている問題)に寄せてください。