直接看例子:

import java.text.DateFormatSymbols;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale; public class CalendarTest
{
public static void main(String[] args)
{
GregorianCalendar d = new GregorianCalendar();
String[] weekdayNames = new DateFormatSymbols(Locale.US).getShortWeekdays();
String[] monthsNames = new DateFormatSymbols(Locale.US).getShortMonths(); int today = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("Today is %2d in the month.%n", today); int month = d.get(Calendar.MONTH);
System.out.printf("This month is %4s.%n", monthsNames[month]); d.set(Calendar.DAY_OF_MONTH, 1);
System.out.printf("The first day of this month is %d.%n", d.get(Calendar.DAY_OF_MONTH)); int weekday = d.get(Calendar.DAY_OF_WEEK);
System.out.printf("The first week day of this month is %4s.%n", weekdayNames[weekday]); int firstDayOfWeek = d.getFirstDayOfWeek();
System.out.printf("The first week day of this week is %4s.%n", weekdayNames[firstDayOfWeek]); int indent = 0;
while (weekday != firstDayOfWeek)
{
indent++; // 当月开始日期减1天,星期自然也就减1天,一直减到星期天
d.add(Calendar.DAY_OF_MONTH, -1);
weekday = d.get(Calendar.DAY_OF_WEEK);
}
System.out.printf("Today - Monday = %d.%nThe day is %4s now.%n", indent, weekdayNames[weekday]);
System.out.printf("The day is %4s %4s now.%n",
monthsNames[d.get(Calendar.MONTH)],
d.get(Calendar.DAY_OF_MONTH)); System.out.println(""); // 打印星期名称,这里采用美式日期格式,从周日开始
do
{
// 从下标为1开始取,美式星期下标为1取到的是周日
System.out.printf("%4s", weekdayNames[weekday]); // 上面日期已经减到星期天了,所以现在又从星期天开始加回去,下标从1开始加到7再变回1
d.add(Calendar.DAY_OF_MONTH, 1);
weekday = d.get(Calendar.DAY_OF_WEEK);
} while (weekday != firstDayOfWeek);
System.out.println(); // 当月开始的日期距离星期天有几天,就需要补打几个空
for (int i = 1; i <= indent; i++)
{
System.out.printf("%4s", "");
} 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();
}
} }

  输出:

Today is 23 in the month.
This month is Aug.
The first day of this month is 1.
The first week day of this month is Wed.
The first week day of this week is Sun.
Today - Monday = 3.
The day is Sun now.
The day is Jul 29 now. Sun Mon Tue Wed Thu Fri Sat
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23* 24 25
26 27 28 29 30 31

java的日期的更多相关文章

  1. [转载]Java 8 日期&时间 API

    Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...

  2. 【转】JAVA 8 日期/时间(Date Time)API指南

    前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ...

  3. 记一个JAVA关于日期的坑

    JAVA解析日期格式代码,之前一直写成:“yyyy-MM-dd hh:mm”,比如"2016-01-18 11:00"."2016-01-18 15:00"都可 ...

  4. java获取日期之间的差异

    转载请注明出处.谢谢http://blog.csdn.net/harryweasley/article/details/42121485 当想到要计算差值.我们肯定想的是"2014.12.1 ...

  5. java 获取日期的几天前,几个月前和几年前

    java 获取日期的几天前,几个月前和几年前. package bys.utils; import java.util.Date; /** * Created by toutou on 2015/3/ ...

  6. Java 8 日期时间 API

    转自:https://www.runoob.com/java/java8-datetime-api.html Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与 ...

  7. JAVA 8 日期工具类

    JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...

  8. Java 8 新特性-菜鸟教程 (8) -Java 8 日期时间 API

    Java 8 日期时间 API Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理. 在旧版的 Java 中,日期时间 API 存在诸多问题,其中有: ...

  9. Java Date 日期 时间 相关方法

    DateTools.java import java.text.SimpleDateFormat; import java.util.Date; /** * 日期操作类 */ public class ...

  10. Java 8 – 日期和时间实用技巧

    当你开始使用Java操作日期和时间的时候,会有一些棘手.你也许会通过System.currentTimeMillis() 来返回1970年1月1日到今天的毫秒数.或者使用Date类来操作日期:当遇到加 ...

随机推荐

  1. 【转】ubuntu下如何将笔记本自带的键盘关闭

    想必大家都经历过这样的情况:在使用usb接口的外接键盘的时候,很容易按到笔记本自带的键盘,从而导致输入错误.尤其是你将外接键盘放在笔记本键盘上面的时候.怎么解决这个问题呢? 搜索之后,找到了答案.注意 ...

  2. How to create Oracle ASM devices using device-mapper multipath devices in Red Hat Enterprise Linux 6

    How to create Oracle ASM devices using device-mapper multipath devices in Red Hat Enterprise Linux 6 ...

  3. Docker的大坑小洼(二)

    再谈<Docker的大坑小洼> 今天闲暇看了一下宏亮同学写的一篇<Docker的大坑小洼>,非常受启发.因为Docker的文章真的很多了,但大家如果只是玩一玩,有很多坑是不会碰 ...

  4. HDU 5831 Rikka with Parenthesis II (贪心)

    Rikka with Parenthesis II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  5. LeetCode OJ:Swap Nodes in Pairs(成对交换节点)

    Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...

  6. python中time()时间的相关问题

    Python中time模块详解(转) 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time ...

  7. 设置tableview 右侧 索引字体的大小

  8. 微信小程序的一些数据调用方式

    1.模板数据的调用 一张图了解一下在wxml页调用预先定义好的模板: 可以看到上面调用了两个模板,数据调用却是不同的,obj是一个对象,对象内包含多个键值对形式的数据: tabbar是一个一维数组,每 ...

  9. 微信小程序页面跳转方法汇总

    微信小程序前端页面跳转有多种方式,汇总如下: Tips: 小程序前端的页面跳转之后,跳转之前的页面并不会凭空消失,而是存进了一个类似“页面栈”的空间里: 只有当这个所谓的“页面栈”满了之后页面才会退出 ...

  10. Android 和 Dagger 2 中的依赖注入

    原文:Dependency Injection in Android with Dagger 2 作者:Joe Howard 译者:kmyhy 在现代开发团队中到处充斥着"你一定要用依赖注入 ...