📄 dateutil.java
字号:
}
/**
* 返回指定时间字符串。
* <p>
* 格式:yyyy-MM-dd HH:mm:ss
*
* @return String 指定格式的日期字符串.
*/
public static String getDateTime(long microsecond) {
return getFormatDateTime(new Date(microsecond), "yyyy-MM-dd HH:mm:ss");
}
/**
* 返回当前时间加实数小时后的日期时间。
* <p>
* 格式:yyyy-MM-dd HH:mm:ss
*
* @return Float 加几实数小时.
*/
public static String getDateByAddFltHour(float flt) {
int addMinute = (int) (flt * 60);
Calendar cal = new GregorianCalendar();
cal.setTime(new Date());
cal.add(GregorianCalendar.MINUTE, addMinute);
return getFormatDateTime(cal.getTime(), "yyyy-MM-dd HH:mm:ss");
}
/**
* 返回指定时间加指定小时数后的日期时间。
* <p>
* 格式:yyyy-MM-dd HH:mm:ss
*
* @return 时间.
*/
public static String getDateByAddHour(String datetime, int minute) {
String returnTime = null;
Calendar cal = new GregorianCalendar();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try {
date = ft.parse(datetime);
cal.setTime(date);
cal.add(GregorianCalendar.MINUTE, minute);
returnTime = getFormatDateTime(cal.getTime(), "yyyy-MM-dd HH:mm:ss");
} catch (ParseException e) {
e.printStackTrace();
}
return returnTime;
}
/**
* 获取两个时间串时间的差值,单位为小时
*
* @param startTime
* 开始时间 yyyy-MM-dd HH:mm:ss
* @param endTime
* 结束时间 yyyy-MM-dd HH:mm:ss
* @return 两个时间的差值(秒)
*/
public static int getDiffHour(String startTime, String endTime) {
long diff = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date startDate = ft.parse(startTime);
Date endDate = ft.parse(endTime);
diff = startDate.getTime() - endDate.getTime();
diff = diff / (1000 * 60 * 60);
} catch (ParseException e) {
e.printStackTrace();
}
return new Long(diff).intValue();
}
/**
* 返回年份的下拉框。
* @param selectName
* 下拉框名称
* @param value
* 当前下拉框的值
* @param startYear
* 开始年份
* @param endYear
* 结束年份
* @return 年份下拉框的html
*/
public static String getYearSelect(String selectName, String value,
int startYear, int endYear) {
int start = startYear;
int end = endYear;
if (startYear > endYear) {
start = endYear;
end = startYear;
}
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\">");
for (int i = start; i <= end; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 返回年份的下拉框。
* @param selectName
* 下拉框名称
* @param value
* 当前下拉框的值
* @param startYear
* 开始年份
* @param endYear
* 结束年份
* 例如开始年份为2001结束年份为2005那么下拉框就有五个值。(2001、2002、2003、2004、2005)。
* @return 返回年份的下拉框的html。
*/
public static String getYearSelect(String selectName, String value,
int startYear, int endYear, boolean hasBlank) {
int start = startYear;
int end = endYear;
if (startYear > endYear) {
start = endYear;
end = startYear;
}
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\">");
if (hasBlank) {
sb.append("<option value=\"\"></option>");
}
for (int i = start; i <= end; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 返回年份的下拉框。
* @param selectName
* 下拉框名称
* @param value
* 当前下拉框的值
* @param startYear
* 开始年份
* @param endYear
* 结束年份
* @param js
* 这里的js为js字符串。例如 " onchange=\"changeYear()\" "
* ,这样任何js的方法就可以在jsp页面中编写,方便引入。
* @return 返回年份的下拉框。
*/
public static String getYearSelect(String selectName, String value,
int startYear, int endYear, boolean hasBlank,String js) {
int start = startYear;
int end = endYear;
if (startYear > endYear) {
start = endYear;
end = startYear;
}
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\" " + js + ">");
if (hasBlank) {
sb.append("<option value=\"\"></option>");
}
for (int i = start; i <= end; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 返回年份的下拉框。
* @param selectName
* 下拉框名称
* @param value
* 当前下拉框的值
* @param startYear
* 开始年份
* @param endYear
* 结束年份
* @param js
* 这里的js为js字符串。例如 " onchange=\"changeYear()\" "
* ,这样任何js的方法就可以在jsp页面中编写,方便引入。
* @return 返回年份的下拉框。
*/
public static String getYearSelect(String selectName, String value,
int startYear, int endYear, String js) {
int start = startYear;
int end = endYear;
if (startYear > endYear) {
start = endYear;
end = startYear;
}
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\" " + js + ">");
for (int i = start; i <= end; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 获取月份的下拉框
*
* @param selectName
* @param value
* @param hasBlank
* @return 返回月份的下拉框。
*/
public static String getMonthSelect(String selectName, String value,
boolean hasBlank) {
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\">");
if (hasBlank) {
sb.append("<option value=\"\"></option>");
}
for (int i = 1; i <= 12; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 获取月份的下拉框
*
* @param selectName
* @param value
* @param hasBlank
* @param js
* @return 返回月份的下拉框。
*/
public static String getMonthSelect(String selectName, String value,
boolean hasBlank, String js) {
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\" " + js + ">");
if (hasBlank) {
sb.append("<option value=\"\"></option>");
}
for (int i = 1; i <= 12; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 获取天的下拉框,默认的为1-31。
* 注意:此方法不能够和月份下拉框进行联动。
* @param selectName
* @param value
* @param hasBlank
* @return 获得天的下拉框
*/
public static String getDaySelect(String selectName, String value,
boolean hasBlank) {
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\">");
if (hasBlank) {
sb.append("<option value=\"\"></option>");
}
for (int i = 1; i <= 31; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 获取天的下拉框,默认的为1-31
*
* @param selectName
* @param value
* @param hasBlank
* @param js
* @return 获取天的下拉框
*/
public static String getDaySelect(String selectName, String value,
boolean hasBlank, String js) {
StringBuffer sb = new StringBuffer("");
sb.append("<select name=\"" + selectName + "\" " + js + ">");
if (hasBlank) {
sb.append("<option value=\"\"></option>");
}
for (int i = 1; i <= 31; i++) {
if (!value.trim().equals("") && i == Integer.parseInt(value)) {
sb.append("<option value=\"" + i + "\" selected>" + i
+ "</option>");
} else {
sb.append("<option value=\"" + i + "\">" + i + "</option>");
}
}
sb.append("</select>");
return sb.toString();
}
/**
* 计算两天之间有多少个周末(这个周末,指星期六和星期天,一个周末返回结果为2,两个为4,以此类推。)
* (此方法目前用于统计司机用车记录。)
* @param startDate
* 开始日期 ,格式"yyyy/MM/dd"
* @param endDate
* 结束日期 ,格式"yyyy/MM/dd"
* @return int
*/
public static int countWeekend(String startDate, String endDate) {
int result = 0;
Date sdate = null;
Date edate = null;
sdate = getDateObj(startDate, "/"); // 开始日期
edate = getDateObj(endDate, "/");// 结束日期
// 首先计算出都有那些日期,然后找出星期六星期天的日期
int sumDays = Math.abs(getDiffDays(startDate, endDate));
int dayOfWeek = 0;
for (int i = 0; i <= sumDays; i++) {
dayOfWeek = getDayOfWeek(getDateAdd(sdate, i)); // 计算每过一天的日期
if (dayOfWeek == 1 || dayOfWeek == 7) { // 1 星期天 7星期六
result++;
}
}
return result;
}
/**
* 返回两个日期之间相差多少天。
*
* @param startDate
* 格式"yyyy/MM/dd"
* @param endDate
* 格式"yyyy/MM/dd"
* @return 整数。
*/
public static int getDiffDays(String startDate, String endDate) {
long diff = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
Date sDate = ft.parse(startDate + " 00:00:00");
Date eDate = ft.parse(endDate + " 00:00:00");
diff = eDate.getTime() - sDate.getTime();
diff = diff / 86400000;// 1000*60*60*24;
} catch (ParseException e) {
e.printStackTrace();
}
return (int) diff;
}
/**
* 返回两个日期之间的详细日期数组(包括开始日期和结束日期)。
* 例如:2007/07/01 到2007/07/03 ,那么返回数组
* {"2007/07/01","2007/07/02","2007/07/03"}
* @param startDate 格式"yyyy/MM/dd"
* @param endDate 格式"yyyy/MM/dd"
* @return 返回一个字符串数组对象
*/
public static String[] getArrayDiffDays(String startDate,String endDate){
int LEN = 0; //用来计算两天之间总共有多少天
//如果结束日期和开始日期相同
if(startDate.equals(endDate)){
return new String[]{startDate};
}
Date sdate = null;
sdate = getDateObj(startDate, "/"); // 开始日期
LEN = getDiffDays(startDate,endDate);
String[] dateResult = new String[LEN+1];
dateResult[0]=startDate;
for(int i=1;i<LEN+1;i++){
dateResult[i] = getFormatDateTime( getDateAdd(sdate, i),"yyyy/MM/dd");
}
return dateResult;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -