パッケージcom.zx.text1。
インポートjava.util.Scanner; //取得した入力窓関数
インポートのjava.util.Calendar;
輸入java.util.Date; //は、時間と日付機能を取得
java.util.GregorianCalendarのインポート。
java.textでのインポート*。
パブリッククラスdemo3 {
公共の静的な無効メイン(文字列[] argsが)はParseExceptionを{スロー
int型maxDay = 0;
int型firstDay = 0;
int型currentDay = 0;
System.out.println(「の形式で日付を入力してください:2019年1月1日」);
スキャナSC =新しいスキャナ(System.in)。
//時間形式のキーボード入力を取得します。
文字列str = sc.nextLine()。
たDateFormat形式=新しいてSimpleDateFormat( "YYYY-MM-DD")。
日付日付= format.parse(STR);
//文字列の指定した日付の形式を変換
カレンダーカレンダー=新しいてGregorianCalendar();
//カレンダーの日付に変換されます
calendar.setTime(日付);
maxDay = calendar.getActualMaximum(Calendar.DATE); //は、最大数を取得します
currentDay = calendar.get(Calendar.DATE)。
一昨日で//現在の日付
calendar.set(Calendar.DATE、1)。
//現在のページの最初の日を設定します
firstDay = calendar.get(Calendar.DAY_OF_WEEKの)。
数週間のうちに//現在の日付に対応する月の初日
System.out.println( "------------------------------------------- ------- ");
System.out.println(「土曜日トン金曜日\トン木曜日\トン水曜日\トン火曜日\トン月曜日\トン日曜日\」);
System.out.println( "------------------------------------------- -------- ");
{(J ++ INT J = 1; J <firstDay)のために
//現在の月の前に出力スペース
System.out.print( "\ tの");
}
数//出力の数月の各日
以下のために(INT I = 1; I <= maxDay; iは++){
//今日の日付を表し
IF(I == currentDay){
System.out.print( "");
}
System.out.print(私は "\ tを" +);
IF((I-(8- firstDay))%7 == 0)の全ての数の出力の{// 7日サイクル
System.out.println( "\ n")を。
}
}
}
}