package com.utils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
import java.text.ParseException;
public class Tools {
/**
* week_list[1] = "mon";
week_list[2] = "tue";
week_list[3] = "wed";
week_list[4] = "thu";
week_list[5] = "fri";
week_list[6] = "sat";
week_list[7] = "sun";
week_list[8] = "no";
*/
//public static String[] weekDays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
public static String[] weekDays = { "sun", "mon", "tue", "wed", "thu", "fri", "sat" };
public static List<String> arrayWeek =Arrays.asList("sun", "mon", "tue", "wed", "thu", "fri", "sat" );
/**
* 判断是否可预订车票 日期
* @param nowDate
* @return
*/
public static boolean validatePreOrder(String nowDate){
boolean bol=false;
int sign=0;//下标标记
List<String> nobuyDayList = new ArrayList<>();
for (int i=0;i<weekDays.length;i++){
if (nowDate.equals(weekDays[i])){
sign=i;
}
}
if (sign>0){
for (int i=0;i<sign;i++){
nobuyDayList.add(weekDays[i]);
}
}
List<String> strList=compareListDiffrent(arrayWeek,nobuyDayList);
if (strList.size()>0){
//当前日期下的之前的日期不能购买
for (String str:nobuyDayList) {
System.out.println("当前日期下的之前的日期不能购买:"+"当前日期之前的票:"+str);
}
if(strList.contains(nowDate)){
bol=true;
}
}
return bol;
}
/**
* 获取当前日期是星期几<br>
* Sunday(星期日)、Monday(星期一)、Tuesday(星期二)、Wednesday(星期三)、Thursday(星期四)、Friday(星期五)、Saturday(星期六)。
* @param date
* @return 当前日期是星期几
*/
public static String getWeekOfDate(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0)
w = 0;
return weekDays[w];
}
/**
* 统计两个时间的时间差
* 相差几秒几毫秒
* @throws java.text.ParseException
*/
public static long getDistanceTime(String str1, String str2) throws java.text.ParseException {
//SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
Date one;
Date two;
long day = 0;//天数差
long hour = 0;//小时数差
long min = 0;//分钟数差
long second=0;//秒数差
long diff=0 ;//毫秒差
try {
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
one = df.parse(str1);
c.setTime(one);
two = df.parse(str2);
long time1 = one.getTime();
long time2 = two.getTime();
diff = time2 - time1;
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
second = diff/1000;
System.out.println("day="+day+" hour="+hour+" min="+min+" ss="+second%60);
} catch (ParseException e) {
e.printStackTrace();
}
return min;
}
/**
* 比例两个list不同的元素
* @param lists1
* @param list2
* @return
*/
private static List<String> compareListDiffrent(List<String> lists1, List<String> list2) {
List<String> diff = new ArrayList<String>();
for(String str:lists1){
if(!list2.contains(str))
{
diff.add(str);
}
}
return diff;
}
}
工具类合集(判断日期)
于 2022-05-19 00:35:06 首次发布