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类的使用总结 在实际项目当中,我们经常会涉及到对时间的处 ...
随机推荐
- 关于【键鼠<局域网>共享软件:synergy】install
Installation 另外,本人在centos6.5环境下作为server运行时,遇到一个问题,synergy1.5随着系统升级居然变成了1.3X,所以如果遇到类似问题,请您先用 rpm -qa ...
- 关于CMD命令行两三事
1.返回盘符:
- sql如果存在就修改不存在就新增
FROM 表名 WHERE 条件) UPDATE 表名 SET 字段=值 WHERE 条件 ELSE INSERT INTO 表名(字段) VALUES(值) 真实使用举例: from [UserRu ...
- 使用PHP生成二维码的两种方法(带logo图像)
一.利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- JSP中使用的模式——JSP+JavaBean
模式二:JSP+Servlet+JavaBean 链接地址:http://wxmimperio.coding.io/?p=189 JSP中两种模式的总结 链接地址:http://wxmimperio. ...
- 使用ListItem给DropDownList填充数据
global::日积月累啥的啊.DBhelper db = new 日积月累啥的啊.DBhelper(); ListItem[] item=]; DataTable dt=db.GetDataTabl ...
- Contest20140705 testA 二分
testA 输入文件: testA.in 输出文件testA.out 时限2000ms 问题描述: 有一个城市拥有N个节点,被M条有权无向路径连接.现在你要在一个地方(可以在路径上当然也可以在节点上) ...
- [BZOJ 1040] [ZJOI2008] 骑士 【基环+外向树DP】
题目链接:BZOJ - 1040 题目分析 这道题目的模型就是一个图,不一定联通,每个连通块的点数等于边数. 每个连通块都是一个基环+外向树.即树上增加了一条边. 如果是树,就可以直接树形DP了.然而 ...
- dispatch队列
GCD编程的核心就是dispatch队列,dispatch block的执行最终都会放进某个队列中去进行,它类似NSOperationQueue但更复杂也更强大,并且可以嵌套使用.所以说,结合bloc ...
- 51,PIC,AVR单片机它们的优点缺点都有哪些?
我有幸接触了几款单片机,并用它们做了一些项目.现在想做个小总结,谈一下自己用各种单片机的感受.仅是个人意见,仁者见仁智者见智. 传统51,我想我就不多说了,适合菜鸟入门,容易上手,价格一般(从性价比方 ...