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中实现工厂日历_Java Calendar实现控制台日历相关推荐

  1. java中的工厂模式_java中工厂模式详解和使用方法

    工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...

  2. java中的工厂_java中的工厂模式

    1.工厂模式 java中的工厂模式,个人理解是:要想制作一个汽车,则必须有轮子,发动机,座椅等. 1.创建一个接口,并且使得轮子,发动机,座椅三个实现类实现这个接口. 2.创建一个工厂,生成基于给定信 ...

  3. java中实现工厂日历_Java实现的日历功能完整示例

    本文实例讲述了java实现的日历功能.分享给大家供大家参考,具体如下: 应用名称:Java日历 用到的知识:Java GUI编程,日期操作 开发环境:win8+eclipse+jdk1.8 功能说明: ...

  4. java中定义一个时间_Java中的日期和时间

    根据个人目前正在编写的<Java核心编程-基础篇>的规划,这部分属于第15章内容,这里沿用了书中的章节编号.另外,因为原文篇幅太长,这里适当做了删减. 15.1.概述 在 Java 8 之 ...

  5. java中的工厂模式

    一.工厂模式介绍 工厂模式专门负责将大量有共同接口的类实例化.工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式的几种形态: (1)简单工厂(Simple Factor ...

  6. java中的分层概念_Java分层概念

    1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分?(下面所描述的service层就是biz) 首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对 ...

  7. java中方法的命名_Java方法中的参数太多,第5部分:方法命名

    java中方法的命名 在上一篇文章 (有关处理Java方法中过多参数的系列文章的 第4部分 )中,我将方法重载视为一种向客户提供需要较少参数的版本的方法或构造函数的方法. 我描述了该方法的一些缺点,并 ...

  8. java中无法推断类型参数_Java中的推断异常

    java中无法推断类型参数 借用和窃取其他语言的概念和想法总是很高兴的. Scala的Option是我真正喜欢的一个主意,因此我用Java编写了一个实现. 它包装了一个可能为null或不为null的对 ...

  9. java中取系统时间_JAVA中获取当前系统时间(示例代码)

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...

最新文章

  1. python函数的基础知识_Python入门基础知识点(函数进阶)
  2. 高并发服务优化篇:从RPC预热转发看服务端性能调优
  3. java如何定义一个接口inf_java.抽象、接口
  4. 刷题练习记录(3)——无重复字符的最长子串(JAVA 和 Python)——set()函数/集合...
  5. hdu1024Max Sum Plus Plus
  6. android实现滑动切换图,Android:使用ViewPager实现左右滑动切换图片加点点
  7. 最优布线问题(信息学奥赛一本通-T1349)
  8. 国内pip源提示“not a trusted or secure host”解决方案
  9. 冒号在MATLAB里基本意思
  10. Swing中 paint()与paintComponent()的区别
  11. 浅谈php的抽象类和接口类
  12. MapXtreme 2005学习(1):创建临时图层
  13. PickerView 使用
  14. dw2xls已升级至pb11.5
  15. 高通可穿戴设备平台 SDW4100 简介
  16. matlab命令窗口汉字显示为乱码 添加绝对路径
  17. 关于navicat设置主键属性identity
  18. 博客营销的一般流程及案例
  19. WampServer环境搭建
  20. 【第三课】UAV倾斜摄影测量三维建模软件

热门文章

  1. [软件]Beyond Compare
  2. (转载)测试理论面试题
  3. day 39 mycql 数据库之约束
  4. 3-cd 命令总结
  5. ios开发网络学习九:NSURLSessionDownloadTask实现大文件下载
  6. 《软件测试》 第三次博客作业
  7. ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)
  8. 使用信号实现异步通知机制的例子
  9. Winform—C#读写config配置文件
  10. SEO行业的路上没有捷径