java 打印当月日历_74. Java打印当月日历
自从Java 1.8 开始,提供了新的日期和时间处理对象,使用起来方便很多。对于新项目,推荐使用该API,为了兼容旧项目,原有的API仍然可以继续使用。下面就简单使用新的API打印当月的日历:
package github.banana;
import java.time.DayOfWeek;
import java.time.LocalDate;
/**
* 打印当月日历
*
* @author zhgxun
*/
public class Calendar {
public static void main(String[] args) {
// 本地日期对象
LocalDate date = LocalDate.now();
// 指定一个日期对象
// LocalDate date = LocalDate.of(2017, 10, 5);
// 当前月份值
int month = date.getMonthValue();
// 当月所在的天
int today = date.getDayOfMonth();
// 重置月的天到起始位置, 减去指定的天数, 即是回复到月初第一天
date = date.minusDays(today - 1);
// 当前时间对应的周
DayOfWeek weekday = date.getDayOfWeek();
// 对应周的枚举
int value = weekday.getValue();
// 打印日历标题
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
// 在第一天的空白处打印空白
for (int i = 1; i < value; i++) {
System.out.printf("%4s", " ");
}
// 遍历当月
while (date.getMonthValue() == month) {
System.out.printf("%3d", date.getDayOfMonth());
// 当天着重标注
if (date.getDayOfMonth() == today) {
System.out.print("*");
} else {
System.out.print(" ");
}
// 每一次循环递增一天
date = date.plusDays(1);
// 如果是每周的第一天则换行
if (date.getDayOfWeek().getValue() == 1) {
System.out.println();
}
}
// 如果不是每周的第一天无需处理
if (date.getDayOfWeek().getValue() != 1) {
System.out.println();
}
}
}
当月日历:
Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21*
22 23 24 25 26 27 28
29 30 31
Process finished with exit code 0
java 打印当月日历_74. Java打印当月日历相关推荐
- java word打印_如何通过Java打印Word文档
本文将介绍如何使用Java程序来打印Word文档.打印可分为两种方式:一是打印到物理打印机:二是打印到虚拟打印机. 使用工具:Spire.Doc for Java 测试环境: ●Intellij Id ...
- 【分享】java反射获取、设置、打印对象属性,对象转map基础工具
package com.lion.util; import java.lang.reflect.Field; import java.util.ArrayList; import java.util. ...
- java 线程交替输出,[java]java经典问题之线程交替打印数字
问题 给出两个线程,要求两个线程交替打印从1到100,例如:A线程打印1,B线程打印2,A线程打印3...依次类推,直到打印到100 思路 这里主要是考察对java中wait/notifyAll机制的 ...
- HelloWorld.java –打印Hello World的Java程序
Java Beginners的第一个示例程序用于打印Hello World. 1.简介 在本教程中,我们将学习如何在java中打印" Hello World" . 对于编程语言的初 ...
- 打印矩阵 java_【Java】 剑指offer(29) 顺时针打印矩阵
本文参考自<剑指offer>一书,代码采用Java语言. 题目 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 思路 每次打印矩阵最外面的一圈(用方法printMatrix ...
- java实现123n_java三线程交替打印123……n
使用多线程交替打印1--n,a进程打印1,4,7,--(3n+1),b进程打印2,7,10,--(3n+2),c进程打印3,6,9,--(3n) 涉及到多线程的同步,阻塞,wait,notify 代码 ...
- java控制台打印图片_java——控制台输入打印图形
1. 打印直角三角形 需求说明:从控制台输入直角三角形的高度(行数).每行*的数目依次为1.3.5.7等 . 实现思路:外层循环控制行数,根据用户输入的行数得到外层循环条件 分析每行打印的内容: 每一 ...
- java占位符打印_什么是 Java 构造器?
构造器是编程的强大组件.使用它们来释放 Java 的全部潜力. -- Seth Kenlon(作者) 在开源.跨平台编程领域,Java 无疑(?)是无可争议的重量级语言.尽管有许多 伟大的跨平台 框架 ...
- java打印计算机_在Java程序中实现高精度打印
在Java环境中,可以使用 java.awt.Toolkit.getScreenResolution()可以得到屏幕每英寸的象素数,但是好像没有什么方法能知道某一台打印机的分辨率,更别提去控制打印粒度 ...
最新文章
- 李飞飞重返斯坦福后的大动作:开启「以人为中心的AI计划」
- 电脑解锁后黑屏有鼠标_笔记本电脑开机黑屏只显示鼠标怎么办?
- Toast的基本用法 吐司打印
- c# 使用TCP连接(server)
- PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表
- dapper mysql 批量_MySQL数据库之c#mysql批量更新的两种方法
- 计算机组成原理简单选择题,计算机组成原理选择题及答案.doc
- UITabBarController详解
- dubbo学习之事件通知实践
- C语言中函数调用中静态变量的应用
- 【做题】TCSRM592 Div1 500 LittleElephantAndPermutationDiv1——计数dp
- Java短视频直播APP源码
- ireport 实现动态合并单元格
- 马云、张小龙、雷军缅怀金庸:江湖路远,侠义长存!
- 火狐网页访问https提示安全连接失败
- JAVA计算机毕业设计社区生鲜电商平台(附源码、数据库)
- 判断计算机硬件和网络故障,计算机硬件故障的识别与处理
- 冬季宝宝喝什么最健康?
- element上传组建+axios实现文件上传
- Unity内存与资源管理
热门文章
- Packet Tracer的使用(一)
- CheckBox和CheckBoxList练习
- 工厂模式的缺点及解决到生产的应用
- 干货分享--企业微信社群促活的12种方式
- 技术VS管理,哪个更重要?
- SmallTalkEDI程序
- openpnp - configure - Connect the driver to your controller
- Python 第八篇:异常处理、Socket语法、SocketServer实现多并发、进程和线程、线程锁、GIL、Event、信号量、进程间通讯...
- DropDownList 控件
- C++代码中R“(xxxxxxxxxxx)“