用java打印日历
来自《java核心技术卷一》
/**
* Created by wangbin10 on 2019/1/3.
* 打印当月日历
*/
public class CalendarTest {
public static void main(String[] args) {
GregorianCalendar d = new GregorianCalendar();
/**
* 获取当前日期的月份和日子
* 月份是0~11
*/
int today = d.get(Calendar.DAY_OF_MONTH);
int month = d.get(Calendar.MONTH);
/**
* 将d设置为当前月份的第一天
* 并获取这一天是一周中的第几天,一周的第一天
*/
d.set(Calendar.DAY_OF_MONTH, 1);
int weekDay = d.get(Calendar.DAY_OF_WEEK);
int firstDayOfWeek = d.getFirstDayOfWeek(); int intent = 0;
while (weekDay != firstDayOfWeek) {
intent++;
//日子减一,一直减到当日是一周的第一天,得到缩进
d.add(Calendar.DAY_OF_MONTH, -1);
weekDay = d.get(Calendar.DAY_OF_WEEK);
}
/**
* 获取表头——日期缩写
*/
String[] weekdays = new DateFormatSymbols().getShortWeekdays(); do {
System.out.printf("%4s", weekdays[weekDay]);
d.add(Calendar.DAY_OF_MONTH, 1);
weekDay = d.get(Calendar.DAY_OF_WEEK);
} while (weekDay != firstDayOfWeek);
System.out.println();
/**
* 打印1号之前的空白
*/
for (int i = 1; i < intent; i++) {
System.out.print(" ");
}
d.set(Calendar.DAY_OF_MONTH, 1); /**
* 只要不出当月,则继续打印
*/
do {
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d", day);
if (day == today) {
System.out.print("* ");
} else {
System.out.print(" ");
}
/**
* 日期增加1天后,如果是周一,则进行换行
*/
d.add(Calendar.DAY_OF_MONTH, 1);
weekDay = d.get(Calendar.DAY_OF_WEEK);
if (weekDay == firstDayOfWeek) {
System.out.println();
}
} while (d.get(Calendar.MONTH) == month);
if (weekDay != firstDayOfWeek) {
System.out.println();
}
}
}
用java打印日历的更多相关文章
- 使用java 打印日历
package hangshu; /* * 打印从1900年到2.year年的日历 */ import java.util.Scanner; public class Calender { publi ...
- java打印日历
打个日历,写了半天,感情水平真菜, 不过主要是不会数组,明天一定要把数组看了 package demo; import java.util.Scanner; public class Demo { / ...
- Python学习实践-----打印日历
使用python语言实现在控制台打印日历 输入年.月.日 输出对应日历,指定的日数输出为'--' 程序没有做严格的输入验证,故输入整数即可. 以下为没有优化的源码: print_calendar.py ...
- Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
- 关于这两天研究Java打印pdf方法的记录
这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例 ...
- java打印正金字塔,倒金字塔和“水影”金字塔
java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处 小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思 ...
- Java打印
Java打印 import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Gra ...
- Oracle打印日历功能
Oracle用SQL打印日历 1.1 打印当月日历 , D, NULL)) SUN, , D, NULL)) MON, , D, NULL)) TUE, , D, NULL)) WED, , D, ...
- Java 打印程序设计实例
3.1 打印文本 3.1.1 应用场景 假设我们需要打印一个窗体的某个文本编辑域(可能只有几行,也可能包含多页)的内容,并且每页最多打印 54 行,如何实现呢? 3.1.2 解决方法 基本思路如下:首 ...
随机推荐
- 经Gradle采取Jenkins的build
如今,企业都太多Jenkins去管理apk,后该代码被提交jenkins在生成build 因此,我们可以得到jenkins提交版本 Jenkins在编制job什么时候,有一个内置的可变BUILD_NU ...
- 数字电路基本概念 —— fan-in/fan-out
0. 从模拟电路到数字电路 数字电路抗干扰能力强: 模拟电路会随着信号的传输而放大,这是因为模拟电路中信号几乎完全将真实信号按比例表现为电压或者电流的形式: 模拟电路是数字电路的基础 74LS283 ...
- C#之Linq、where()、FindAll()的区别
原地址 C#之Linq.where().FindAll()的区别 对于实现了IEnumerable接口的类.类型.集合可以使用Linq.Linq的扩展方法where().FindAll()来查询符合谓 ...
- C# 7.0 使用下划线忽略使用的变量
原文:C# 7.0 使用下划线忽略使用的变量 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http://lindexi.gitee. ...
- layer的使用笔记
$('#calendar').fullCalendar({ lang:"zh-cn", buttonText:{ today: '今天' }, eventLimit: true, ...
- PAMIE- Python实现IE自动化的模块
PAMIE- Python实现IE自动化的模块(附 网易注册代码) 收藏 安装: 今晚弄了一下.已经成功导入PAMIE.具体步骤如下 1.假如你要用PAM30那就就得去下个Python 3.0安装.因 ...
- python 教程 第十四章、 地址薄作业
第十四章. 地址薄作业 #A Byte of Python #!/usr/bin/env python import cPickle import os #define the contacts fi ...
- js中的escape的用法汇总
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...
- WPF - Group分组对ListBox等列表样式的约束
原文:WPF - Group分组对ListBox等列表样式的约束 在做WPF主题支持时,出现一个分组引起的莫名错误,可是折腾了我一番.在没有使用样式时,列表分组很正常,使用了别人写的ListBox列表 ...
- DataGridTemplateColumn
DataGridTemplateColumn自定义单元格样式 <DataGrid Grid.Row="0" Name="BasicRuleDataGrid" ...