Java Calendar实现控制台日历
public static void main(String[] args) throws IOException {
//初始化日历对象
Calendar calendar = Calendar.getInstance();
//当前日期
int today = calendar.get(Calendar.DAY_OF_MONTH);
//当前月份
int month = calendar.get(Calendar.MONTH);
//设置日历为当前月第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
//获取当前月第一天在当前周的位置
int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
//获取当前月第一天所在周的第一天
int firstDayOfWeek = calendar.getFirstDayOfWeek();
//首行缩进天数
int day = 0;
//如果日历当前日期不是所在周的第一天,则循环查找
while(weekDay != firstDayOfWeek){
//缩进天数自加
day++;
//日历当前天数向前减一,例如7月1日,执行之后为6月30日
calendar.add(Calendar.DAY_OF_MONTH, -1);
//获取日历当前日期在一周中的第几天
weekDay = calendar.get(Calendar.DAY_OF_WEEK);
}
//获取周天数简称,如星期一,mon等
//根据地区不同显示不同,可以通过Locale.setDefault(Locale.CANADA);设置
String[] arys = new DateFormatSymbols().getShortWeekdays();
//循环打印周天数简称
do{
System.out.print("\t"+arys[weekDay]);
calendar.add(Calendar.DAY_OF_MONTH, 1);
weekDay = calendar.get(Calendar.DAY_OF_WEEK);
}while(weekDay != firstDayOfWeek);
System.out.println();
//根据当前月第一天在周中的天数设置首行缩进
for(int i = 1; i <= day; i++){
System.out.print("\t");
}
//设置日历对象时间为当前月第一天,准备打印日历
calendar.set(Calendar.DAY_OF_MONTH, 1);
//循环打印日期
do{
int now = calendar.get(Calendar.DAY_OF_MONTH);
System.out.print("\t"+now);
//标记出当前日期
if(today == now){
System.out.print("*");
}
calendar.add(Calendar.DAY_OF_MONTH, 1);
weekDay = calendar.get(Calendar.DAY_OF_WEEK);
//如果处理后的日期是所在周的第一天,则换行
if(weekDay == firstDayOfWeek){
System.out.println();
}
}while(calendar.get(Calendar.MONTH) == month);
}

Java Calendar实现控制台日历的更多相关文章
- Java Calendar 注意事项
Java JDK 提供了java.util.Calendar来处理日期和时间.Calendar是一个抽象类,是所有日历的模板,因此我们可以继承Calendar来实现其他的历法(比如阴历). Java提 ...
- Java Calendar 类的时间操作
Java Calendar 类的时间操作 标签: javaCalendar时间Date 2013-07-30 17:53 140401人阅读 评论(7) 收藏 举报 分类: 所有(165) Java ...
- Java Calendar使用总结
JavaCalendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/a ...
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(1) Calendar
Java 操作日期/时间,往往会涉及到Calendar,Date,DateFormat这些类. 最近决定把这些内容系统的整理一下,这样以后使用的时候,会更得心应手.本章的内容是主要讲解“Java时间框 ...
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口
本章主要是收藏一些常用的类和接口,包括:万年历(农历.阳历节日.阴历节日).自定义的Calendar接口. 万年历 源码如下(ChineseCalendar.java): package com.vi ...
- Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(5) SimpleDateFormat
本章介绍SimpleDateFormat. SimpleDateFormat 介绍 SimpleDateFormat 是一个格式化Date 以及 解析日期字符串 的工具.它的最常用途是,能够按照指定的 ...
- Java Calendar Date使用总结
Java Calendar Date使用总结 package cn.outofmemory.codes.Date; import java.util.Calendar; import java.uti ...
- Java Calendar 类的时间操作.RP
JavaCalendar 类时间操作,这也许是创建和管理日历最简单的一个方案,示范代码很简单. 演示了获取时间,日期时间的累加和累减,以及比较. 原文地址:blog.csdn.NET/joyous/a ...
- Java Calendar类的使用总结【转】
感谢!原文地址:https://www.cnblogs.com/huangminwen/p/6041168.html Java Calendar类的使用总结 在实际项目当中,我们经常会涉及到对时间的处 ...
随机推荐
- codeforces 359 C - Robbers' watch
Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description Robb ...
- 单元测试unit test,集成测试integration test和功能测试functional test的区别
以下内容转自 https://codeutopia.net/blog/2015/04/11/what-are-unit-testing-integration-testing-and-function ...
- Junit4 架构设计系列(1): Request,ClassRequest 和 RunnerBuilder
Overall Junit的成功已不言而喻,其广泛应用于单元测试,测试驱动开发领域.大量的工具,IDE都集成了JUnit,著名的有Maven,Ant,Eclipse,甚至像Google SDK提供的A ...
- matlab常用小函数(一)
(第1维为对每一列操作,第2维维对每一行操作) sum 求和操作 max 求最大值操作 sum:求和操作 sum(A):矩阵A按列向求和(每一列求和),结果为一个行向量 sum(A,2):矩阵A按行向 ...
- 你一定要知道的关于Linux文件目录操作的12个常用命令
写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操 ...
- Codeforces Round #205 (Div. 2) : A
题意: 要求找到最少次数的交换次数使得两组数都是偶数: 很明显答案要么是0,要么是1,或者不管怎么交换都不行(-1): 所以: #include<cstdio> #define maxn ...
- 如何打造一款五星级的 APP ?
移动互联网大潮来袭!据统计,2015 年平均每天有 1000 个新的应用上架,而这些应用的现状可以说是鱼龙混杂,同是每个人的眼光.品味.意识和利益都不同,因此每人眼中的应用也是不同的.在巨大的市场竞争 ...
- SQL servere 范式、事务
一.数据库范式: 1.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式. 范式是符合某一种级别的关系模式的集合.数据库中的关系必须满足一定的要求,即满足不同的范式. 满足最低要求的范式是 ...
- 深入剖析Java中的装箱和拆箱(转)
自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱.拆箱相关的问题. 以下是本文的 ...
- (转)MVC 路由
URL路由系统通过对请求地址进行解析从而得到以目标Controller名称为核心的路由数据.Url路由系统最初是为了实现请求url与物理文件路径分离而建立的,MVC的Url Route是将Url地址与 ...