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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于微信小程序的查寝打卡系统是一款便捷、实用的工具,旨在帮助学校管理学生宿舍的考勤情况。该应用采用Java编程语言进行开发,利用微信小程序平台为用户提供一个简洁易用的界面。通过扫描二维码或输入房间号,用户可以轻松完成查寝打卡操作。该系统具有以下特点:实时更新:系统能够实时获取学生的考勤信息,方便管理人员对宿舍情况进行监控和统计。数据安全:所有数据都经过加密处理,确保用户隐私和信息安全。灵活性:支持多种打卡方式,如扫码、手动输入等,满足不同场景的需求。易于使用:用户界面简洁明了,操作流程简单,即使没有编程经验的用户也能快速上手。可扩展性:系统具有良好的可扩展性,可以根据实际需求进行定制化开发,满足不同学校、不同宿舍的管理需求。总之,基于微信小程序的查寝打卡系统是一款功能强大、实用性高的宿舍管理工具。它不仅提高了宿舍管理的效率,还有助于培养学生良好的作息习惯。
资源推荐
资源详情
资源评论
收起资源包目录
基于微信小程序的查寝打卡微信小程序(java)cx11.zip (338个子文件)
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
共 338 条
- 1
- 2
- 3
- 4
资源评论
码农飞哥
- 粉丝: 14w+
- 资源: 1766
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 大数据-Matlab界面设计
- 数据分析-SPSS分析入门与深入
- 李跳跳_真实好友5.0_内测版.apk
- 前端开发中Vue.js模板与指令详解及应用场景
- 题目源码2024年强网杯全国网络安全挑战赛 PWN题目old-fashion-apache源码
- 基于Java 实现的百度图像识别API开发的车型识别APK
- CD python 数据分析代码及数据集(CDNOW-master.txt)
- 【MATLAB代码】二维平面上的TDOA,使用加权最小二乘法,不限制锚点数量(锚点数量>3即可)
- 数据分析-matlab入门
- 基于原生小程序实现的图像智能识别小程序,垃圾智能分类 通过拍照或者上传照片完成智能垃圾分类,服务端为 C#
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功