package com.base.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.regex.Pattern;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class DateUtil {
protected static Log logger = LogFactory.getLog(DateUtil.class);
/** 格式:年-月-日 小时:分钟:秒 **/
public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";
/** 格式:年-月-日 小时:分钟 **/
public static final String FORMAT_TWO = "yyyy-MM-dd HH:mm";
/** 格式:年月日 小时分钟秒 **/
public static final String FORMAT_THREE = "yyyyMMdd-HHmmss";
/** 格式:年-月-日 **/
public static final String LONG_DATE_FORMAT = "yyyy-MM-dd";
/** 格式:月-日 **/
public static final String SHORT_DATE_FORMAT = "MM-dd";
/** 格式:小时:分钟:秒 **/
public static final String LONG_TIME_FORMAT = "HH:mm:ss";
/** yyyyMMddHHmmss 紧凑类型 **/
public static final String LONG_DATE_COMPACT_FORMAT = "yyyyMMddHHmmss" ;
// 年的加减
public static final int SUB_YEAR = Calendar.YEAR;
// 月加减
public static final int SUB_MONTH = Calendar.MONTH;
// 天的加减
public static final int SUB_DAY = Calendar.DATE;
// 小时的加减
public static final int SUB_HOUR = Calendar.HOUR;
// 分钟的加减
public static final int SUB_MINUTE = Calendar.MINUTE;
// 秒的加减
public static final int SUB_SECOND = Calendar.SECOND;
// 用来全局控制 上一周,本周,下一周的周数变化
private int weeks = 0;
private int MaxDate;// 一月最大天数
private int MaxYear;// 一年最大天数
public DateUtil() {
}
/**
* 把符合日期格式的字符串转换为日期类型
*
* @param dateStr
* @return
*/
public static java.util.Date StringtoDate(String dateStr, String format) {
Date d = null;
SimpleDateFormat formater = new SimpleDateFormat(format);
try {
formater.setLenient(false);
d = formater.parse(dateStr);
} catch (Exception e) {
d = null;
}
return d;
}
/**
* 把符合日期格式的字符串转换为日期类型
*/
public static java.util.Date StringtoDate(String dateStr, String format,
ParsePosition pos) {
Date d = null;
SimpleDateFormat formater = new SimpleDateFormat(format);
try {
formater.setLenient(false);
d = formater.parse(dateStr, pos);
} catch (Exception e) {
// log.error(e);
d = null;
}
return d;
}
/**
* 把日期转换为字符串
*
* @param date
* @return
*/
public static String DateToString(java.util.Date date, String format) {
String result = "";
SimpleDateFormat formater = new SimpleDateFormat(format);
try {
result = formater.format(date);
} catch (Exception e) {
// log.error(e);
}
return result;
}
/**
* 获取当前时间的指定格式
*
* @param format
* @return
*/
public static String getCurrDate(String format) {
return DateToString(new Date(), format);
}
/**
*
* @param dateStr
* @param amount
* @return
*/
public static String DateSub(int dateKind, String dateStr, int amount) {
Date date = StringtoDate(dateStr, FORMAT_ONE);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(dateKind, amount);
return DateToString(calendar.getTime(), FORMAT_ONE);
}
/**
* 两个日期相减
* secTime-firstTime
* @param firstTime
* @param secTime
* @return 相减得到的秒数
*/
public static long TimeSub(String firstTime, String secTime) {
long first = StringtoDate(firstTime, FORMAT_ONE).getTime();
long second = StringtoDate(secTime, FORMAT_ONE).getTime();
return (second - first) / 1000;
}
/**
* 计算与当前日期相差秒数
* strtTime-now
* @param firstTime
* @param secTime
* @return 相减得到的秒数
*/
public static long TimeSubNow(String strtTime) {
long first = StringtoDate(strtTime, FORMAT_ONE).getTime();
long second = new Date().getTime();
return (second - first) / 1000;
}
/**
* 获得某月的天数
*
* @param year
* int
* @param month
* int
* @return int
*/
public static int getDaysOfMonth(String year, String month) {
int days = 0;
if (month.equals("1") || month.equals("3") || month.equals("5")
|| month.equals("7") || month.equals("8") || month.equals("10")
|| month.equals("12")) {
days = 31;
} else if (month.equals("4") || month.equals("6") || month.equals("9")
|| month.equals("11")) {
days = 30;
} else {
if ((Integer.parseInt(year) % 4 == 0 && Integer.parseInt(year) % 100 != 0)
|| Integer.parseInt(year) % 400 == 0) {
days = 29;
} else {
days = 28;
}
}
return days;
}
/**
* 获取某年某月的天数
*
* @param year
* int
* @param month
* int 月份[1-12]
* @return int
*/
public static int getDaysOfMonth(int year, int month) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, 1);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
/**
* 获得当前日期
*
* @return int
*/
public static int getToday() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.DATE);
}
/**
* 获得当前月份
*
* @return int
*/
public static int getToMonth() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.MONTH) + 1;
}
/**
* 获得当前年份
*
* @return int
*/
public static int getToYear() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR);
}
/**
* 返回日期的天
*
* @param date
* Date
* @return int
*/
public static int getDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DATE);
}
/**
* 返回日期的年
*
* @param date
* Date
* @return int
*/
public static int getYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}
/**
* 返回日期的月份,1-12
*
* @param date
* Date
* @return int
*/
public static int getMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}
/**
* 计算两个日期相差的天数,如果date2 > date1 返回正数,否则返回负数
*
* @param date1
* Date
* @param date2
* Date
* @return long
*/
public static long dayDiff(Date date1, Date date2) {
return (date2.getTime() - date1.getTime()) / 86400000;
}
/**
* 比较两个日期的年差
*
* @param befor
* @param after
* @return
*/
public static int yearDiff(String before, String after) {
Date beforeDay = StringtoDate(before, LONG_DATE_FORMAT);
Date afterDay = StringtoDate(after, LONG_DATE_FORMAT);
return getYear(afterDay) - getYear(beforeDay);
}
/**
* 比较指定日期与当前日期的差
*
* @param befor
* @param after
* @return
*/
public static int yearDiffCurr(String after) {
Date beforeDay = new Date();
Date afterDay = StringtoDate(after, LONG_DATE_FORMAT);
return getYear(beforeDay) - getYear(afterDay);
}
public static int getFirstWeekdayOfMonth(int year, int month) {
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calen
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
微信小程序项目实例、开发实例,可做计算机毕业设计、课程设计等参考。 【项目技术】 微信小程序开发工具+mysql+java+b/s 【实现功能】 不是本系统的注册用户只可以在线的浏览相关的浏览信息,无法进行相关的功能操作。只有成功的注册成为本系统的注册用户才可以进行签到打卡、请假、新闻公告和个人信息等功能操作。 管理员用户主要负责的是本签到打卡小程序的日常的信息管理和系统的维护工作,其包括学生的考勤统计、签到管理、请假管理和学生信息管理等操作。确保签到打卡小程序的正常的运行和使用。
资源推荐
资源详情
资源评论
收起资源包目录
基于微信小程序的毕业设计-查寝签到打卡小程序(源码+数据库+演示视频).zip (339个子文件)
DateUtil.class 20KB
StringUtil.class 17KB
AutoCodeController.class 12KB
ApiController.class 10KB
BaseDAO.class 9KB
StudentController.class 8KB
LeaveController.class 8KB
AttendanceController.class 7KB
UserController.class 7KB
BaseController.class 7KB
BaseServiceImpl.class 6KB
AutoCodeItem.class 6KB
CourseController.class 5KB
ClazzController.class 5KB
ArticleController.class 5KB
DictController.class 5KB
UploadController.class 5KB
AutoCodeItemController.class 4KB
Student.class 4KB
AdminController.class 4KB
FieldUtil.class 3KB
Attendance.class 3KB
User.class 3KB
Leave.class 3KB
AutoCode.class 2KB
AdminInterceptor.class 2KB
Dict.class 2KB
DistanceUtils.class 2KB
Article.class 2KB
Course.class 2KB
Clazz.class 2KB
BaseService.class 1KB
Page.class 1KB
PageUtils.class 1KB
PageResult.class 1KB
JsonResult.class 1KB
Options.class 700B
.classpath 890B
org.eclipse.wst.common.component 544B
org.eclipse.wst.jsdt.ui.superType.container 49B
layui.css 78KB
layer.css 14KB
laydate.css 7KB
login.css 4KB
layout.css 4KB
inputTag.css 2KB
code.css 1KB
iconfont.eot 46KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
list.html 15KB
list.html 11KB
list.html 11KB
edit.html 9KB
add.html 9KB
table.html 7KB
edit.html 7KB
edit.html 6KB
table.html 6KB
table.html 6KB
table.html 5KB
table.html 5KB
layout.html 5KB
edit.html 4KB
add.html 4KB
edit.html 4KB
add.html 4KB
login.html 4KB
pass.html 4KB
attendance.html 3KB
index.html 476B
hibernate-core-4.3.0.Final.jar 4.97MB
poi-ooxml-schemas-3.10.1-20140818.jar 4.72MB
poi-3.10.1-20140818.jar 1.86MB
jsf-impl.jar 1.78MB
aspectjweaver.jar 1.47MB
poi-scratchpad-3.10.1-20140818.jar 1.18MB
poi-ooxml-3.10.1-20140818.jar 1011KB
freemarker.jar 995KB
ehcache-core-2.4.3.jar 983KB
spring-context-4.0.2.RELEASE.jar 951KB
spring-core-4.0.2.RELEASE.jar 938KB
jackson-mapper-asl-1.9.2.jar 748KB
javassist-3.18.1-GA.jar 697KB
spring-beans-4.0.2.RELEASE.jar 653KB
spring-web-4.0.2.RELEASE.jar 649KB
spring-webmvc-4.0.2.RELEASE.jar 645KB
jsf-api.jar 593KB
mchange-commons-java-0.2.3.4.jar 568KB
commons-collections-3.1.jar 546KB
mysql-connector-java-5.0.8-bin.jar 528KB
log4j-1.2.17.jar 478KB
antlr-2.7.7.jar 435KB
c3p0-0.9.2.1.jar 414KB
spring-jdbc-4.0.2.RELEASE.jar 410KB
jstl-impl.jar 379KB
spring-orm-4.0.2.RELEASE.jar 358KB
spring-aop-4.0.2.RELEASE.jar 344KB
dom4j-1.6.1.jar 307KB
共 339 条
- 1
- 2
- 3
- 4
资源评论
岛上程序猿
- 粉丝: 1953
- 资源: 3506
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
- 基于哈希链表的简单人员信息管理系统
- 其他类别JdonFramework开源框架 v5.1 Build20071025-jdonframework-5.1.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功