Java编写月历功能,calendar熟练使用

本文详细介绍了如何利用Java的Calendar类来编写月历功能,通过实例展示了设置日期为1月29号的过程,揭示了Calendar类在处理日期操作时的灵活性和实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:实现控制台输出月历功能。
public String monthlycalendar(){
    Calendar cal1 = new GregorianCalendar(TimeZone.getTimeZone("Asia/Shanghai"));
    System.out.println("周日\t周一\t周二\t周三\t周四\t周五\t周六\t");
    //System.out.println();
    //System.out.print("\t");
    cal1.set(Calendar.MONTH,0);
    cal1.set(Calendar.DAY_OF_MONTH,29);
    int nowday = cal1.get(Calendar.DAY_OF_MONTH);
    cal1.set(Calendar.DAY_OF_MONTH,1);
    int startofweek = cal1.get(Calendar.DAY_OF_WEEK) - 1;

    for (int i = 0;i < startofweek;i++){
            System.out.print("\t");
        }
    switch (startofweek){
        case 0:
            //System.out.println("星期日");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 0){
                    System.out.println();
                }
            }
            break;
        case 1:
            //System.out.println("星期一");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 6){
                    System.out.println();
                }
            }
            break;
        case 2:
            //System.out.println("星期二");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 5){
                    System.out.println();
                }
            }
            break;
        case 3:
            //System.out.println("星期三");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 4){
                    System.out.println();
                }
            }
            break;
        case 4:
            //System.out.println("星期四");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 3){
                    System.out.println();
                }
            }
            break;
        case 5:
            //System.out.println("星期五");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 2){
                    System.out.println();
                }
            }
            break;
        case 6:
            //System.out.println("星期六");
            for (int i = 1;i < cal1.getActualMaximum(Calendar.DATE) + 1;i++){
                if (i == nowday){
                    System.out.print(i + "*\t");
                }else{
                    System.out.print(i + "\t");
                }
                if (i % 7 == 1){
                    System.out.println();
                }
            }
            break;
    }

    return "";
}

e.g.1:设置成1月29号

显示效果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值