import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class DateUtils {
public static final int MSEC_PRE_SECOND = 1000;
public static final int MSEC_PRE_MINUTE = MSEC_PRE_SECOND * 60;
public static final int MSEC_PRE_HOUR = MSEC_PRE_MINUTE * 60;
public static final int MSEC_PRE_DAY = MSEC_PRE_HOUR * 24;
public static final String FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss";
public static final String FORMAT_DATETIME_ZH = "yyyy年MM月dd日 HH时mm分ss秒";
public static final String FORMAT_DATE = "yyyy-MM-dd";
public static final String FORMAT_DATE_ZH = "yyyy年MM月dd日";
public static final String FORMAT_TIME = "HH:mm:ss";
public static final String FORMAT_TIME_ZH = "HH时mm分ss秒";
public static final String FORMAT_DAY = "E";
public static Date getDatetime(String datestr) throws ParseException {
return getDatetime(datestr, FORMAT_DATETIME);
}
/**
* 把日期字符串包装成java.util.Date
*
* @param datestr
* @param format
* @return
* @throws ParseException
*/
public static Date getDatetime(String datestr, String format)
throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.parse(datestr);
}
public static java.sql.Date getDate(String datestr) throws ParseException {
return getDate(datestr, FORMAT_DATE);
}
/**
* 把日期字符串包装成java.sql.Date
*
* @param datestr
* @param format
* @return
* @throws ParseException
*/
public static java.sql.Date getDate(String datestr, String format)
throws ParseException {
return new java.sql.Date(getDatetime(datestr, format).getTime());
}
public static Time getTime(String datestr) throws ParseException {
return getTime(datestr, FORMAT_TIME);
}
/**
* 把日期字符串包装成java.sql.Time
*
* @param datestr
* @param format
* @return
*/
public static Time getTime(String datestr, String format)
throws ParseException {
return new Time(getDatetime(datestr, format).getTime());
}
public static String formatDatetime(Date... date) {
return formatDate(FORMAT_DATETIME, date);
}
public static String formatDate(Date... date) {
return formatDate(FORMAT_DATE, date);
}
public static String formatTime(Date... date) {
return formatDate(FORMAT_TIME, date);
}
public static String formatDay(Date... date) {
return formatDate(FORMAT_DAY, date);
}
public static String formatDate(String datestr, String srcformat,
String descformat) throws ParseException {
return formatDate(descformat, getDatetime(datestr, srcformat));
}
/**
* 格式化日期时间
*
* @param format
* @param date
* @return
*/
public static String formatDate(String format, Date... date) {
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date.length == 1 ? date[0] : new Date());
}
public static Date nextDate(Date... date) {
return nextDate(1, date);
}
/**
* 计算某个日期相隔几天后的日期
*
* @param interval
* @param date
* @return
*/
public static Date nextDate(int interval, Date... date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date.length == 1 ? date[0] : new Date());
calendar.add(Calendar.DATE, interval);
return new Date(calendar.getTimeInMillis());
}
public static long intervalDays(String datestr, boolean... strict)
throws ParseException {
return intervalDays(strict.length == 1 ? strict[0] : false, getDatetime(datestr));
}
public static long intervalDays(String datestr, String refdatestr,
boolean... strict) throws ParseException {
return intervalDays(datestr, refdatestr, FORMAT_DATETIME, strict);
}
public static long intervalDays(String datestr, String refdatestr,
String format, boolean... strict) throws ParseException {
return intervalDays(strict.length == 1 ? strict[0] : false, getDatetime(datestr, format), getDatetime(refdatestr, format));
}
public static long intervalDays(Date... date) {
return intervalDays(false, date);
}
/**
* 计算某个日期和参考日期之间相隔的天数
*
* @param strict
* 是否严格区分时分秒
* @param date
* @return
*/
public static long intervalDays(boolean strict, Date... date) {
long datetime = date[0].getTime();
long reftime = date.length == 2 ? date[1].getTime() : new Date()
.getTime();
if (strict) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date[0]);
Map<Integer, Integer> values = new HashMap<Integer, Integer>();
values.put(Calendar.HOUR, 0);
values.put(Calendar.MINUTE, 0);
values.put(Calendar.SECOND, 0);
values.put(Calendar.MILLISECOND, 0);
calendar = getCalendar(values, calendar);
datetime = calendar.getTimeInMillis();
calendar.setTime(date.length == 2 ? date[1] : new Date());
calendar = getCalendar(values, calendar);
reftime = calendar.getTimeInMillis();
}
return (reftime - datetime) / MSEC_PRE_DAY;
}
public static Date firstDate(String datestr) throws ParseException {
return firstDate(datestr, FORMAT_DATETIME);
}
public static Date firstDate(String datestr, String format)
throws ParseException {
return firstDate(getDatetime(datestr, format));
}
/**
* 获取某个月的第一天
*
* @param date
* @return
*/
public static Date firstDate(Date... date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date.length == 1 ? date[0] : new Date());
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
return new Date(calendar.getTimeInMillis());
}
public static Date lastDate(String datestr) throws ParseException {
return lastDate(datestr, FORMAT_DATETIME);
}
public static Date lastDate(String datestr, String format)
throws ParseException {
return lastDate(getDatetime(datestr, format));
}
/**
* 获取某个月的最后一天
*
* @param date
* @return
*/
public static Date lastDate(Date... date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date.length == 1 ? date[0] : new Date());
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return new Date(calendar.getTimeInMillis());
}
public static int getDays(String datestr) throws ParseException {
return getDays(datestr, FORMAT_DATETIME);
}
public static int getDays(String datestr, String format)
throws ParseException {
return getDays(getDatetime(datestr, format));
}
/**
* 获取某个月的天数
*
* @param date
* @return
*/
public static int getDays(Date... date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date.length == 1 ? date[0] : new Date());
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
/**
* 设置java.util.Calendar
*
* @param values
* @param calendar
* @return
*/
public static Calendar getCalendar(Map<Integer, Integer> values,
Calendar... calendar) {
Calendar cal = calendar.length == 1 ? calendar[0] : Calendar.getInstance();
for (Integer key : values.keySet()) {
cal.set(key, values.get(key));
}
return cal;
}
/**
* 剩余天时分秒
*
* @param date
* @return
*/
public static Map<Integer, Integer> leftTime(Date... date) {
Date datetime = date[0];
Date reftime = date.length == 2 ? date[1] : new Date();
long msec = reftime.getTime() - datetime.getTime();
long days = msec / MSEC_PRE_DAY;
long hours = msec % MSEC_PRE_DAY / MSEC_PRE_HOUR;
long minutes = msec % MSEC_PRE_DAY % MSEC_PRE_HOUR / MSEC_PRE_MINUTE;
long seconds = msec % MSEC_PRE_DAY % MSEC_PRE_HOUR % MSEC_PRE_MINUTE / MSEC_PRE_SECOND;
Map<Integer, Integer> values = new HashMap<Integer, Integer>();
values.put(Calendar.DAY_OF_MONTH, (int) days);
values.put(Calendar.HOUR, (int) hours);
values.put(Calendar.MINUTE, (int) minutes);
values.put(Calendar.SECOND, (int) seconds);
return values;
}
}
分享到:
相关推荐
【资源说明】 1、开发环境:ssm框架;内含Mysql数据库;JSP技术 2、项目代码都经过严格调试,代码没有任何bug!下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
基于java的大学生兼职系统设计与实现.docx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:springboot 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+springboot+vue+MYSQL+MAVEN 前端采用的Vue框架,后端采用java语言,sprinboot框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统
题目描述: 给出一个简单的一元三次方程,要求三个解。 思路: 这些大佬们为何都用一些神奇的算法……还把这道题评为普及组难度……其实只要枚举就可以了,注意一下double精度。 这道题的代码可以比一些入门组的还要短……这道题其实应该在普及-难度
【资源说明】 1、开发环境:ssm框架;内含Mysql数据库;JSP技术 2、项目代码都经过严格调试,代码没有任何bug!下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
JPEG文件,一个上传开发板,一个解压后拖到Ubuntu的Home中
【资源说明】 1、开发环境:ssm框架;内含Mysql数据库;VUE技术 2、项目代码都经过严格调试,代码没有任何bug!下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还[基于Python]自己写的一个微信跳一跳自动游戏程序(针对安卓手机)。 全自动运行 自动适应不同分辨率 自动调整各个参数误差.zip行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
基于java的网上图书商城系统设计与实现.docx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
前端采用的Vue框架,后端采用java语言,ssm框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统 本系统基于SSM(Spring+SpringMVC+MyBatis)框架,适用于毕业设计, 基于B/S模式, mysql数据库,感兴趣的朋友们可以下载研究一下。 jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:ssm 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+ssm+vue+MYSQL+MAVEN
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:springboot 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+springboot+vue+MYSQL+MAVEN 前端采用的Vue框架,后端采用java语言,sprinboot框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统
给Wpf的datagrid控件动态添加title和数据的方法