import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; import com.yunsi.day15.dateuse8.DateUtil; /** * 可视化日历,打印当前月 * @author Administrator * */ public class Test05 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入日期:(yyyy-MM-dd)"); String s = input.next(); // String s="2019-10-28"; //String--->Date Date date = DateUtil.getDateFromStr(s, "yyyy-MM-dd"); //Date--->Calendar Calendar cal = new GregorianCalendar(); cal.setTime(date); //获取当前月的最大天数 ,确定循环的终止条件 int maxDays = cal.getActualMaximum(Calendar.DATE); System.out.println("当前月的最大天数:"+maxDays); //获取当前天 int today = cal.get(Calendar.DATE); System.out.println("今天:"+today); //将日期设置成1号,然后获取周索引 1号前面\t的个数= 1号的周索引-1 cal.set(Calendar.DATE, 1); int weekIndex = cal.get(Calendar.DAY_OF_WEEK); System.out.println("1号对应的周索引:"+weekIndex); System.out.println("日\t一\t二\t三\t四\t五\t六"); //先打印1号前面的\t for(int i=1;i<weekIndex;i++){ System.out.print("\t"); } for(int i=1;i<=maxDays;i++){ //如果当前周索引==周六,打印\n 换行 if(i==today){ System.out.print("*"); } System.out.print(i+"\t"); if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){ System.out.print("\n"); } //每打印1天,日期加1 // System.out.println("当前的日期:"+cal.get(Calendar.DATE)); cal.add(Calendar.DATE, 1); } } }
结果