用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 解决方法 基本思路如下:首 ...
随机推荐
- SpringCloud学习笔记-zuul网关
公司目前使用的是dubbo方式实现微服务,想试水改造接口层服务为Spring Cloud, 以下是网络拓补图. 第一层负载均衡可以用nginx或者zuul(即有2层zuul), 本图画的是nginx. ...
- poj 3071 可能DP
http://poj.org/problem? id=3071 推方程不难,可是难在怎么算 dp[i][j]表示第i场时第j仅仅队伍存活下来的概率 方程:dp[i][j]=sigma(dp[i-1][ ...
- POJ 2954-Triangle(计算几何+皮克定理)
职务地址:POJ 2954 意甲冠军:三个顶点的三角形,给出,内部需求格点数. 思考:就像POJ 1265. #include <stdio.h> #include <math.h& ...
- Haroopad 安装到 Mac OSX
打开Terminal 控制台 粘贴运行代码安装换cask: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ ...
- WPF的Timer控件的使用
原文:WPF的Timer控件的使用 通过System.Threaing.Timer控件来实现“初始加载页面时为DataGrid的模版列赋初始值” System.Threaing.Timer的用法: 步 ...
- halcon基础数据类型
halcon基础数据类型 使用变量不需定义 等号 := 不等号 # 字符串赋值 str:='sdff' 等于比较符 if(q=0) 与 if(a< ...
- jquery开关灯
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- net share列出了Windows的默认共享(包括C盘)
另外还有单独开启办法: 开启共享方法: 命令行方式:net share 博客=F:\娱乐\种子 我设置了一个名为“博客”的共享,路径为:“F:\娱乐\种子”. GUI方式:找到“F:\娱乐”的“种子” ...
- LOCK_TIMEOUT
SET LOCK_TIMEOUT 1000 begin tran TranNameA select * from tablenameA WITH (updlock) where... waitfor ...
- Directory.GetFiles()获取多个类型格式的文件
第一种(用通配符) string[] fileNameX = Directory.GetFiles(@"D:\Sjdc", "*.xls?"); Array a ...