public class DateUtil {
private final static String format = "yyyy-MM-dd";
/**
* 日期格式转换为字符串
*
* @param date
* @return
*/
public static String dateToString(Date date){
if(date != null){
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}else{
return "-";
}
}
/**
* 将指定格式的字符串转换为日期
* @param str
* @return
*/
public static Date stringToDate(String str){
Date date = null ;
if( str != null && str.matches("\\d{4}-\\d{1,2}-\\d{1,2}")){
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
date = sdf.parse(str);
} catch (ParseException e) {
System.out.println("日期转换失败!");
e.printStackTrace();
}
}
return date ;
}
/**
* 计算两个日期之间的天数
*
* @param startDate
* @param endDate
* @return
*/
public static Long countDayBetweenDate(Date startDate, Date endDate){
Calendar fromCalendar = Calendar.getInstance();
fromCalendar.setTime(startDate);
fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
fromCalendar.set(Calendar.MINUTE, 0);
fromCalendar.set(Calendar.SECOND, 0);
fromCalendar.set(Calendar.MILLISECOND, 0);
Calendar toCalendar = Calendar.getInstance();
toCalendar.setTime(endDate);
toCalendar.set(Calendar.HOUR_OF_DAY, 0);
toCalendar.set(Calendar.MINUTE, 0);
toCalendar.set(Calendar.SECOND, 0);
toCalendar.set(Calendar.MILLISECOND, 0);
return (toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60 * 24);
}
/**
* 计算两个日期之间的月数
* @param startDate
* @param endDate
* @return
*/
public static int countMonthBetweenDate(Date startDate,Date endDate){
int months = 0 ;
Calendar tmpStartCalendar = Calendar.getInstance() ;
tmpStartCalendar.setTime(startDate);
while(true){
tmpStartCalendar.add(Calendar.MONTH, 1);
Date tmpStartDate = tmpStartCalendar.getTime() ;
if( compareDates(endDate,tmpStartDate) ){
months += 1 ;
} else {
break ;
}
}
return months;
}
/**
* 获取给定日期的指定月份的天数
* @param date
* @return
*/
public static int getDaysOfMonth(Date date){
Calendar c = Calendar.getInstance();
//设置为该月,例如08年1月,日期随意
c.setTime(date);
//获得该月的日期
int max = c.getActualMaximum(Calendar.DATE);
return max ;
}
/**
* 比较两个日期的大小
* 如果两个日期相等,那么将认为第一个日期大于第二个日期
* @param d1
* @param d2
* @return
*/
private static boolean compareDates(Date d1 ,Date d2){
if( d1.getTime() - d2.getTime() >= 0){
return true ;
}
return false ;
}
}
分享到:
相关推荐
用java实现备忘时钟,适合初学者,用java实现备忘时钟,适合初学者,
Java写的一个类似windows自带的日历程序,他除了可以浏览日期外,还可以在特定的时间点写备忘录,当到达该时间点时会有弹窗提示。
实现备忘录基本功能,可以显示年月日日历,点击任意一日期可以写备忘录,写完保存后在点这个日期则跳出窗口说该日期有备忘录
一个自己写的备忘录程序,可以用标题和内容的形式记录一些信息,可以按照标题、记录日期、信息类型查询,导出excel数据。另外提供到期提示和闹钟功能。使用javadb嵌入式数据库,swing外观。提供Eclipse工程源代码和...
用java编写的记事备忘录,支持系统托盘,日期查找,记事备忘等功能
<java.lang>.Date:日期类,月份从0—11 92 <java.lang> Calendar:日历类 93 十六、 IO流:用于处理设备上数据 ★★★★★ 94 IO流的概念 95 字符流与字节流 98 流对象 101 File类 102 Java.util.Properties 103 ...
备忘录模块使用说明书 配置源程序 附加数据库SQL Server 2000 (1)将DataBase文件夹中的两个文件...添加完备忘信息后,在万年历相应的日期右下角会有个灰色的标记,单击可查看该日期的所有备忘信息。 图1.4 首页日历
PoliceListen主要是用来定义日历日期按钮事件的监听,用以监听当点击相关日期时会 弹出相应日期的备忘记事的窗口来。PoliceListen2主要是定义备忘录窗口中添加按钮的 时间监听,使其被点击后能够显示添加备忘记事...
而这次的Java程序设计可以说与以往大不相同,先是在课堂上老师讲述了有关的基础理论、基本语法知识,而后再加上这两周的课程设计,可以说是真正能够体会到程序编程的乐趣,也第一次发现自己原来对程序设计是如此的感...
关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制...
基于Web技术的B/S结构的个人日程安排管理系统。...日程管理就是将每天的工作和事务安排在日期中,并做一个有效的记录,方便管理日常的工作和事务,达到工作备忘的目的,同时也具有对日常工作进行指导、监督的作用。
java收银系统源码PySpark 备忘单 此备忘单将帮助您学习 PySpark 并更快地编写 PySpark 应用程序。 这里的所有内容都是功能齐全的 PySpark 代码,您可以运行或适应您的程序。 这些片段在 CC0 1.0 通用许可证下获得...
Java万年历 可以查看前后一百年的日历,可以选择一个日期并在此写下备忘录
允许访问(读取、写入、显示)Palm 桌面文件的类的完整 Java 源代码:日期簿、地址簿、备忘录和待办事项。 使用 Windows 版 Palm 桌面 3.0.1 版进行测试。
员工考勤管理系统源码java GitHub 星星 只是我的 github 星列表,以便于搜索。 回购网址 描述 编程语言 日期 基于实验混合器的快速迭代可视化系统 JavaScript 2020 年 4 月 12 日 :ringed_planet: (ringed_planet) ...
用了技术框架:微信小程序客户端 + Java后台服务器端,api接口通信 + mysql数据库 ## 管理员:a/a 用户:客户端注册 运行环境:jdk1.8/jdk1.9 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat8.x/9.x...
用了技术框架:微信小程序客户端 + Java后台服务器端,api接口通信 + mysql数据库 管理员:a/a 用户:客户端注册 运行环境:jdk1.8/jdk1.9 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat8.x/9.x ...