この記事では、年と月ごとにカレンダーを印刷する機能のJava実装について説明します。次のように、参照のために共有してください。
java.text.parseexception; Import java.text.simpledateformat; Import java.util.calendar; Import java.util.date; public static void main(string [] args)throws parseexception {calendarbook cb = new Candalbook(); cb.printweektitle(); cb.printcalendar(2018、3); } public void printcalendar(int year、int month)throws parseexception {string monthstr; //月のフォーマットは、(月<10){monthstr = "0" + month; } else {monthstr = month + ""; //数字と文字列を文字列形式に変換}文字列yearmonthstr = year + monthstr; SimpleDateFormat sdf = new simpledateFormat( "yyyymmdd");カレンダーカレンダーエンド= calendar.getInstance();カレンダーカレンダースタート= calendar.getInstance(); //年と月の月に基づいて月の数日が入力された日= getMonthLastday(year、month); //月の初めの日付文字列文字列dateStartStr = yearmonthstr + "01"; //月末の日付文字列文字列dateEndstr = yearmonthstr + monthdays; date startdate = sdf.parse(datestartstr); date enddate = sdf.parse(dateendstr); calendarStart.settime(startdate); calendarEnd.settime(enddate); //月の数週間を取得しますint weeks = calendarEnd.get(calendar.week_of_month); //月の最初の日は曜日です。ここでは日曜日は1から始まります。 int day = 1; //特別処理は月の最初の週に行われ、行は(int i = 1; i <= 7; i ++){if(i> = dayofweek){system.out.print( "+day+" "); day ++ 1週++){= 7; i ++){day <10) getmonthlastday(int year、int month){int day = {{0、31、31、30、31、31、30、31、30、30、31、30、31}、 %400 == 0){//毎月の日[1] [月]} }}実行結果のスクリーンショット(実行効果、フォントサイズ5が最適です):
PS:参照用のいくつかのオンラインツールを次に示します。
オンライン日付/日計算機:
http://tools.vevb.com/jisuanqi/date_jisuanqi
オンライン永久カレンダー:
http://tools.vevb.com/bianmin/wannianli
オンライン月/グレゴリオカレンダー変換ツール:
http://tools.vevb.com/bianmin/yinli2yangli
UNIXタイムスタンプ変換ツール:
http://tools.vevb.com/code/unixtime
Java関連のコンテンツの詳細については、このサイトのトピックをご覧ください:「Java日付と時刻の操作スキルの概要」、「Javaデータ構造とアルゴリズムに関するチュートリアル」、「Java操作DOMノードスキルの要約」、「Java Cache操作スキルの概要」
この記事がみんなのJavaプログラミングに役立つことを願っています。