java--LocalDate,制作一个日历表

标签: LocalDate

前景

看了书上localDate的例子,用它来制作日历表,我调整了一下,做了一个日历表,虽然是例子,但是看一遍之后自己实现还是有点难度的

主要内容

  • 年月日的获取
  • 由当前时间重置回月初
  • 通过获取月初的星期的值来格式化月初的那一行,并且到达星期6实现换行

代码

package test;
import java.time.*;

public class calendar 
{

    public static void main(String[] args) 
    {   
        // 本身没有数据,自然不用new初始化实例域
        LocalDate date = LocalDate.now();
        int year = date.getYear();
        int month = date.getMonthValue();
        int day = date.getDayOfMonth();

        // 将date重置为这个月的月初
        date = date.minusDays(day-1);

        // 获取月初的那一天是星期几,取模运算还是厉害啊!
        DayOfWeek weekday = date.getDayOfWeek();
        int value = weekday.getValue();
        System.out.println("           "+year+" "+month+"         ");
        System.out.println("Sun Mon Tue Wed Thu Fri Sat");

        // 打印第一行的缩进部分
        for (int i = 0; i < value % 7; i++) 
        {
            System.out.print("    ");
        }


        // 正式打印day
        while (date.getMonthValue() == month) 
        {
            System.out.printf("%3d", date.getDayOfMonth());

            // 给今天的日期打上标记*
            if (date.getDayOfMonth() == day)
            {
                System.out.print("*");
            }
            else 
            {
                System.out.print(" ");
            }

            // 每当遇到星期6换行
            if (date.getDayOfWeek().getValue() == 6)
            {
                System.out.println();
            }

            // 当前天往后移动1天
            date = date.plusDays(1);
        }

    }
}

运行结果

这里写图片描述

小总结:

和linux的有异曲同工之妙呢,有没有~小小代码,乐趣十足~,虽然写的都是书上的例子,但是光看不自己动手操作,不是很尴尬吗?看书学习的最大问题莫过于眼高手低了。再简单,只有自己真正敲出来了,运行出来了,才能有印象。就好比这个取模运算,我就是自己加进去的,上次见它是约翰瑟夫问题。这次就用上了~java核心技术这本书写的真的是好,很易懂,阅读过程很享受

版权声明:本文为qq_41376740原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41376740/article/details/79759503

智能推荐

记录一次学习做网页日历表+时间

代码里详细注释了日历表的生成原理,若是还不懂可留言 效果图如下,没有美化...

根据日历表生成财年及周编号

概述 数仓中经常会有一张日历维表,里面预存了很多日期截取和计算相关的字段,便于与事实表关联之后进行各类基于日期相关的分析。 现假定已有日历维表字段有限,要求增加财年字段,并增加财年对应的周编号(周编号的逻辑有3种,后续将逐一说明和实现)。 本文以SQL Server 2016为例,示例如何不使用循环,以纯集合思维的数据库编程方法实现以上需求。 仅给出最关键的Select语句,为表加字段的SQL操作...

统计辅助表格——年月日历表的生成

当有统计表格的横坐标是按年份或月份统计的情况,我的处理办法是建立一个数据库辅助表util_calendar,从中拿取统计的时间段(要group by的日期字段): 首先,建表: 然后向表里添加两条数据,20世纪和21世纪: 接下来写存储过程,目的是给表中添加年和月的数据: 调用存储过程,假设存储过程名为insert_calendar: 这样就生成了1970年到2099年之间的所有年、月的数据(下图...

JAVA课程学习三:查询日历表

练习知识1:输入输出训练 练习知识2:制表符的使用 思路:星期的概念是从1900年开始,进行计算的,通过当前日期到1900年的天数计算,然后求余7得出星期几,本次训练,代码主要步骤为,通过计算年份到1900年的天数,以及本年的月的天数,最后通过打印输出日历表。 运行结果:...

安卓:通过BaseAdapter适配器对ListView组件的简单应用案例

项目结果演示: 案例实现流程: 在布局文件中新建一个ListView组件 ↓ 在另一个布局文件中新建一个用于展示的布局文件 ↓ 在java文件中新建实体类Student ↓ 在java文件中新建StudentApdater继承BaseAdapter并覆写相关方法(重点:覆写getView方法) ↓ 通过LinkedList插入数据 ↓ 调用自己定义...

猜你喜欢

递归与树(三)

图的遍历: 深度优先搜索 从任意节点开始, 访问v。 (递归的)访问每一个依附于v的(未访问过的)节点。 如果图是连通的,我们最终可以到达所有的节点。 深度优先搜索递归实现: 要访问图中与节点k相连的所有节点,我们将它标记为访问过的,然后递归的访问k的邻接表中所有未访问过的节点。 void traverse(link k,void (*visit)(int)) {     li...

博客运用Hexo-Next主题美化(上)

​ –此篇文章有转载,转载url放在最后方 1、前言 上篇文章已经在Windows上将个人博客个搭建好了(如果还不知道怎么搭建的,可以戳这里,可是大家有没有发现,搭建的Hexo博客使用的是默认主题,而且不咋好看,跟那些大神们的个人博客相比,还差了很多,不过不要紧,看完这篇文章,你也可以拥有那些炫酷吊炸天的效果。废话少说,那就直接开始吧。 2、设置主题 Hexo给我们提供了很多的主题供我...

spring-boot整合jax-ws发布服务

第一步:导入依赖 第二步:创建接口 第三步:创建实现类 第四部:创建配置类 第五部:启动项目,访问http://localhost:8091/demo/api?wsdl 显示效果如下,则发布成功...

ArrayList中的迷惑行为

当我准备利用ArrayList的add(index,element)方法时遇到一个郁闷的结果。 废话不多说,show time 我现在需要满足一个需求,就是希望利用arrayList可以将本来的无序的元素添加到对应的index下 执行后: java.lang.IndexOutOfBoundsException: Index: 3, Size: 0 ArrayList初始化源码 因为初始化的 arr...

1+x云计算中级,第二天串讲,拓扑图

1+x云计算中级,串讲第二天的内容为利用ensp模拟华为设备 拓扑图如下 需要达到的效果:网络互通,各个vlan之间能正常通信,三个PC机能通过dhcp获得地址,能够通过cloud连接到外网,ping通8.8.8.8 需要用的技术有,vlan划分,OSPF,静态路由,路由的重发布,nat,基于端口的dhcp技术,cloud的使用 配置步骤 cloud的设置,连接物理机的网卡,请选择vm netwo...