来自《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打印日历的更多相关文章

  1. 使用java 打印日历

    package hangshu; /* * 打印从1900年到2.year年的日历 */ import java.util.Scanner; public class Calender { publi ...

  2. java打印日历

    打个日历,写了半天,感情水平真菜, 不过主要是不会数组,明天一定要把数组看了 package demo; import java.util.Scanner; public class Demo { / ...

  3. Python学习实践-----打印日历

    使用python语言实现在控制台打印日历 输入年.月.日 输出对应日历,指定的日数输出为'--' 程序没有做严格的输入验证,故输入整数即可. 以下为没有优化的源码: print_calendar.py ...

  4. Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

    Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...

  5. 关于这两天研究Java打印pdf方法的记录

    这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例 ...

  6. java打印正金字塔,倒金字塔和“水影”金字塔

    java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处   小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思 ...

  7. Java打印

    Java打印 import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Gra ...

  8. Oracle打印日历功能

    Oracle用SQL打印日历 1.1  打印当月日历 , D, NULL)) SUN, , D, NULL)) MON, , D, NULL)) TUE, , D, NULL)) WED, , D,  ...

  9. Java 打印程序设计实例

    3.1 打印文本 3.1.1 应用场景 假设我们需要打印一个窗体的某个文本编辑域(可能只有几行,也可能包含多页)的内容,并且每页最多打印 54 行,如何实现呢? 3.1.2 解决方法 基本思路如下:首 ...

随机推荐

  1. wxWidgets谁刚开始学习指南(5)——使用wxSmith可视化设计

    wxWidgets谁刚开始学习的整个文件夹指南   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用w ...

  2. Latex 琐碎

    χ(\chi),Ξ(\Xi),ξ(\xi) 0. 加颜色 x2+y2=z2({\color{Red} {x^2+y^2=z^2}}) Magenta, Cyan, Emerald(宝石绿) 1. 斜杠 ...

  3. uwp - 禁用屏幕翻转/禁用屏幕旋转/禁用横屏模式

    原文:uwp - 禁用屏幕翻转/禁用屏幕旋转/禁用横屏模式 解决方案目录 > Package.appxmanifest 双击打开,把支持的旋转:纵向勾上,只勾这一个其他不勾,就可以了.同理,想让 ...

  4. A熟知SP.NET---WebForms UnobtrusiveValidationMode 必须“jquery”ScriptResourceMapping。

    我相信,有过ASP.NET人们学习经验RequiredFieldValidator控制(验证非空控制)一定不会陌生,禁止控制输入定义的内容的作用(该属性InitialValue的值.属性默认值为空字符 ...

  5. WPF 实现测量显示文本长度

    原文:WPF 实现测量显示文本长度 以工具类的方式实现: using System; using System.Windows; using System.Windows.Media; using S ...

  6. Unity3d 鼠标的事件GetMouseButtonDown()、GetMouseButton()、GetMouseButtonUp()

    当鼠标按键按下时,返回一次true,后面參数0是左键,1是右键,2是中键 if(Input.GetMouseButtonDown(0)) Debug.Log("Pressed left cl ...

  7. nyoj 92 图片实用面积【bfs】

    图像实用区域 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描写叙述 "ACKing"同学曾经做一个图像处理的项目时.遇到了一个问题,他须要摘取出图片中某 ...

  8. .net core 2.0 读取配置文件

    1.引用Microsoft.Extensions.Configuration2.在Startup中注入服务 public static IConfiguration Configuration { g ...

  9. MVC HttpUtility.HtmlEncode是如何编码的

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...

  10. SQL Server查询当前连接数

    行数就是连接数,每一行是连接详情 SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT [DBID] FROM [M ...