问题:跟据用户输入的年份和月份,输出月份的每一天,并按日历格式,显示天数和星期数。
import java.util.Calendar;
import java.util.Scanner;public class Test3 {public static void main(String[] args) {//创建扫描器对象Scanner input = new Scanner(System.in);System.out.println("请输入年份:");System.out.println("请输入月份:");//用户输入年份int year = input.nextInt();//用户输入月份int month = input.nextInt();//创建日历类对象Calendar calendar = Calendar.getInstance();//通过用户输入的年份设置万年历年份calendar.set(Calendar.YEAR,year);//通过用户输入的月份设置万年历月份,其中,月份要按照外国的月份设置,所以-1calendar.set(Calendar.MONTH,month-1);//设置月份的第一天为1calendar.set(Calendar.DAY_OF_MONTH,1);//获取月份第一天的星期数,按照外国的星期,应-1int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;//先获取一个月的最后一个星期的最后一天作为设置月份的最后一天calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));//获取月份的最后一天int lastDay = calendar.get(Calendar.DAY_OF_MONTH);System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");//根据月份的第一天的星期数设置空格,让第一天作为首星期的第一个数for(int i = 1;i <= week;i++){System.out.print("\t\t");}//根据月份的第一天的星期数进行循环,星期数与循环数之和与7取余为0,则换行后继续循环for(int i = 1;i <= lastDay;i++){System.out.print(i + "\t\t");if((i + week) % 7 == 0){System.out.println();}}}
}
1.运行后控制台画面:
2.用户输入年份和月份 :
3.控制板输出画面: