package com.sxt.home1;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner; public class Test2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入日期:如 2017-4-20");
String s = input.nextLine();
//String s = "2017-4-20";//字符串日期 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");//新建日期格式化对象
try {
Date date = df.parse(s);//String-->Date
//Calendar cal = new GregorianCalendar();//方式一:新建Calendar对象 多态 GregorianCalendar:公历
Calendar cal = Calendar.getInstance();//方式二:新建Calendar对象
cal.setTime(date);//设置 Calendar 的时间
int day = cal.get(Calendar.DATE);// 记录当前几号 Calendar.DATE : 指示一个月中的某天,与 DAY_OF_MONTH 是同义词
//System.out.println(day); cal.set(Calendar.DATE, 1);//设置从一号开始
System.out.println("一\t二\t三\t四\t五\t六\t日");//打印星期
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);//获取当前日期一周中的第几天!
//System.out.println(dayOfWeek);
//(周日为第一天)一周第几天 前空格个数
// 1 6
// 2 0
// 3 1
// 4 2
// 5 3
// 6 4
// 7 5
if(dayOfWeek >= 2){
for(int i=1; i<=(dayOfWeek-2); i++){
System.out.print("\t");//打印1号之前的空格
}
}else{
for(int i=1; i<=6; i++){
System.out.print("\t");//打印1号之前的空格
}
}
int monthDays = cal.getActualMaximum(Calendar.DATE);//获取当月的最大天数
for(int i=1; i<=monthDays; i++){
if(i == day){
System.out.print("*");//如果是当前日 打印*
}
System.out.print(i+"\t");//显示一个月的每一天 int j = cal.get(Calendar.DAY_OF_WEEK);//获取当前日期一周中的第几天!
if(j == Calendar.SUNDAY){//周日即第1天换行(j==1)
System.out.println();
}
cal.add(Calendar.DATE, 1); //Calendar对象 添加指定的时间量
} } catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}

Calendar类实现当前日期的日历的更多相关文章

  1. Java.util 包(Date 类、Calendar类、Random类)

    java.util 包提供了一些实用的方法和数据结构. Date 类 Date 类表示日期和时间,里面封装了操作日期和时间的方法.Date 类经常用来获取系统当前时间. 构造方法: 构造方法 说明 D ...

  2. Java的Calendar类

    通过Date类我们可以创建并格式化一个日期对象,但是如何才能设置和获取日期数据的特定部分呢?----Calendar类 Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,通过getIn ...

  3. Calendar类

    Calendar类 注意:根据日历规则,如果想要这个月减去5天,那么则为: add(Calendar.Day,-5) 成员方法: public int get(int field):返回给定日历段的值 ...

  4. 第28天学习打卡(Date和Calendar类 基本类型的包装类 集合 增强for循环 )

    Date和Calendar类 简介 日期和日历类,用于操作日期相关信息. 构造方法 Date(): 构造一个日期对象,当前系统时间,精确到毫秒. Date(long): 构造一个日期对象,时间为自&q ...

  5. Java基础知识强化94:Calendar类之Calendar概述和获取日历字段的方法

    1. Calendar类概述:       Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并 ...

  6. Java api 入门教程 之 JAVA的Date类与Calendar类

    在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理. 一.这里简单介绍一下Date类的使 ...

  7. JAVA的Date类与Calendar类【转】

    Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date ...

  8. java 14 -10 Calendar类以及练习

    Calendar:它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法, 并为操作日历字段(例如获得下星期的日期)提供了一些方法. 1 ...

  9. Java API —— Calendar类

    1.Calendar类概述  Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_OF_MONTH.HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段 ...

随机推荐

  1. leyou_01_环境搭建

    1.乐优商城项目搭建 前端技术: 基础的HTML.CSS.JavaScript(基于ES6标准) JQuery Vue.js 2.0以及基于Vue的框架:Vuetify 前端构建工具:WebPack ...

  2. JavaScript创建对象的几种方式总结

    ECMA把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数. 1. 使用Object构造函数创建对象 创建自定义对象的最简单的方式就是创建一个Object的实例,然后再为它添加属性和方法 ...

  3. js 实现继承

    我们现在要做的一件事情是像其他语言的面向对象一下实现继承多态 具体要求如下: 一个 Father 构造函数,一个 Child 构造函数,其中改写 Father中的部分参数, new Child() 表 ...

  4. fastjson map转json

    Map map = new HashMap(); map.put("name", "老三"); map.put("age", 12); St ...

  5. mysql过多sleep连接 修改timeout配置节约连接数 配置连接数

    数据库连接数量我设置了16384,最大值 ; 对于mysql8在设置一下这个 SET GLOBAL mysqlx_max_connections = ; 可以使用 命令查看自己的设置 SHOW var ...

  6. Git.之.最小化配置

    Git.之.最小化配置 做一个全局的用户配置,便于以后提交代码等,记录当前操作的用户. ## 添加配置 # git config [--local | --global | --system] use ...

  7. Apache HttpComponents 工具类 [ HttpUtil ]

    pom.xml <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId&g ...

  8. php数字转人民币金额大写

    numToRmb.php <?php header("content-type:text/html;charset=utf-8"); function numToRmb($n ...

  9. 响应式布局及bootstrap(实例)

    说明: 这几天公司要求网站实现响应式布局,所以对响应式布局进行了相对全面的了解,并做了几个实例. 转载请注明源地址,谢谢^_^,http://www.cnblogs.com/liu-zhen/p/44 ...

  10. Direct2D 第6篇 绘制多种风格的线条

    原文:Direct2D 第6篇 绘制多种风格的线条 上图是使用Direct2D绘制的线条,Direct2D在效率上比GDI/GDI+要快几倍,GDI/GDI+绘图是出了名的"慢", ...