控制台日历小案例

语言学习

日历小案例

/**
 * 根据用户输入日期信息在控制台打印出日期表并标注客户指定日期
 * @Author:meihongsheng
 * @Description:com.mhs.test01
 */
public class TestDate2 {
    public static void main(String[] args) throws ParseException {
        //创建日期指定格式的日期对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //提示用户从键盘输入
        Scanner sc = new Scanner(System.in);
        System.out.println("请按照格式输入字符串: yyyy-mm-dd");
        String str = sc.next();
        //获取客户输入日期的date对象
        Date date = sdf.parse(str);
        //创建Calendar对象
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        //获取客户输入的是当月的第几天
        int day = c.get(Calendar.DAY_OF_MONTH);
        //控制台打印星期信息
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        //设置Calendar对象中day从第一天开始
        c.set(Calendar.DAY_OF_MONTH,1);
        //使用循环使得第一天能出现在正确的星期下
        for(int i = 0;i < c.get(Calendar.DAY_OF_WEEK) - 1;i++){
            System.out.print("\t");
        }
        //获取客户输入的当月最大天数
        int actualMaximum = c.getActualMaximum(Calendar.DATE);
        for (int i = 1; i <= actualMaximum; i++) {
            //判断执行到day日期,然后加上*
            if(day == c.get(Calendar.DAY_OF_MONTH)){
                System.out.print(c.get(Calendar.DAY_OF_MONTH) + "*\t");
            }else{
                System.out.print(c.get(Calendar.DAY_OF_MONTH) + "\t");
            }
            //判断一行末尾是否是周六,如果是就执行换行
            if(c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
                System.out.println();//换行
            }
            //让天数+1
            c.add(Calendar.DAY_OF_MONTH,1);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值