文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中怎么实现动态日历效果

2023-06-20 18:05

关注

本篇文章为大家展示了Java中怎么实现动态日历效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

题目:动态日历

输入年份,月份,显示当前月份日历布局

分析

实现日历的基本思想为:确定一个基准日期,计算从基准日期到指定年份月份的前一个月的总天数,计算这个总天数的前提为判断指定年份是否是闰年(闰年是可以被400整除或者可以被4整除但不被100整除的年份),利用总天数除以7的余数可以确定当前月份前面的空格数,要想简单的使此余数为空格数,则基准日期必须为1月1日并且是星期一,大部分日历的基准日期为1900年1月1日,并且这一天是星期一,可以更简单实现动态日历。

步骤分析

判断指定年份是否是闰年
2:计算从1900年1月到目标年份月份的前一个月总天数
3:根据提供的月份获取当月总天数
4:获取打印当前月信息时要输出的空格数
5:打印日历

代码实现

Calendar类:

package com.softeem.j2106.oop2; public class Calendar {        int year;        int month;         public Calendar(int y,int m){        year = y;        month = m;    }         public int getTotalDaysFrom1900(){        int days = 0;        //统计整年的天数        for(int i = 1900;i < year;i++){            days += isLeapYear(i) ? 366 : 365;        }        //统计整月的天数        for(int i = 1;i < month;i++){            days += getDaysOfMonth(i);        }        return days;    }         public int getDaysOfMonth(int m){        switch(m){            case 4:            case 6:            case 9:            case 11:                return 30;            case 2:                return isLeapYear(year) ? 29 : 28;            default:                return 31;        }    }         public boolean isLeapYear(int year){        return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;    }         public void show(){        System.out.println("现在是:"+year+"年"+month+"月");        System.out.println("==SOFTEEM万年历【"+year+"】年【"+month+"】月==");        System.out.println("一\t二\t三\t四\t五\t六\t日");        System.out.println("===============================");         //获取日历前的空格数(当月的第一天是周几)        int space = getTotalDaysFrom1900() % 7;        //获取当月总天数        int days = getDaysOfMonth(month);        int count = 0;        //输出空格        for (int i = 0; i < space; i++) {            count++;            System.out.print("\t");        }        //输出日期        for(int i = 1;i <= days;i++){            System.out.print(i+"\t");            count++;            //如果计数器是7的倍数,说明已经打印一周,需要换行            if(count % 7 == 0){                System.out.println();            }        }     }      public static void main(String[] args) {        Calendar c = new Calendar(2021,8);        c.show();    }}

上述内容就是Java中怎么实现动态日历效果,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯