日历类打印可视化日历

不羁的心 提交于 2019-12-02 16:34:32
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);
        }
    }
}

结果

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!