java的日期
直接看例子:
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的日期的更多相关文章
- [转载]Java 8 日期&时间 API
Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...
- 【转】JAVA 8 日期/时间(Date Time)API指南
前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ...
- 记一个JAVA关于日期的坑
JAVA解析日期格式代码,之前一直写成:“yyyy-MM-dd hh:mm”,比如"2016-01-18 11:00"."2016-01-18 15:00"都可 ...
- java获取日期之间的差异
转载请注明出处.谢谢http://blog.csdn.net/harryweasley/article/details/42121485 当想到要计算差值.我们肯定想的是"2014.12.1 ...
- java 获取日期的几天前,几个月前和几年前
java 获取日期的几天前,几个月前和几年前. package bys.utils; import java.util.Date; /** * Created by toutou on 2015/3/ ...
- Java 8 日期时间 API
转自:https://www.runoob.com/java/java8-datetime-api.html Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与 ...
- JAVA 8 日期工具类
JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...
- Java 8 新特性-菜鸟教程 (8) -Java 8 日期时间 API
Java 8 日期时间 API Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与时间的处理. 在旧版的 Java 中,日期时间 API 存在诸多问题,其中有: ...
- Java Date 日期 时间 相关方法
DateTools.java import java.text.SimpleDateFormat; import java.util.Date; /** * 日期操作类 */ public class ...
- Java 8 – 日期和时间实用技巧
当你开始使用Java操作日期和时间的时候,会有一些棘手.你也许会通过System.currentTimeMillis() 来返回1970年1月1日到今天的毫秒数.或者使用Date类来操作日期:当遇到加 ...
随机推荐
- Hibernate入门_增删改查
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private ...
- poj 1182 食物链(高级的带权并查集)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 76486 Accepted: 22742 Description ...
- Appium Remote webdriver调用
remote webdriver的模板 默认开启4723端口接受webdriver请求 默认开启4724用于和android通讯 #coding:utf-8 #Import the common pa ...
- svn 图标状态说明
http://blog.csdn.net/coslay/article/details/41980131
- http和https区别
超文本传输协议 HTTP 协议被用于在 Web 浏览器和网站服务器之间传递信息,HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文, ...
- Visual studio 生成后事件说明
在“配置属性->生成事件->生成后事件”属性页中的“命令行”编辑框中输入如下命令: copy "$(ProjectDir)$(IntDir)\$(ProjectName).t ...
- ES6-块级作用域绑定-let和const
一.var声明及变量提升机制 var声明,无论实际上在哪里声明,都会被当做在当前作用域顶部声明的变量,这就是变量提升机制. 二.块级声明 块级声明用于声明在指定块的作用域之外无法访问的变量.块级作用域 ...
- FFmpeg再学习 -- 硬件加速编解码
为了搞硬件加速编解码,用了一周时间来看 CUDA,接下来开始加以总结. 一.什么是 CUDA (1)首先需要了解一下,什么是 CUDA. 参看:百度百科 -- CUDA 参看:CUDA基础介绍 参看: ...
- java读取resource/通过文件名获取文件类型
java读取resource java读取resource目录下文件的方法: 借助Guava库的Resource类 Resources.getResource("test.txt" ...
- MPAndroidChart Wiki(译文)~Part 5
19. ChartData子类 这篇wiki主要关注ChartData子类的具体介绍.至于此部分没有提及到的ChartData的子类,代表他们没有特性功能需要介绍. BarData 方法 使用 set ...