package com.jqyd.pub.date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;
public class JqydDateUtil {
private static TimeZone china=TimeZone.getTimeZone("GMT+08:00");
public static String getDateMillisecond(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
return sdf.format(date);
}
public static String getDateSecOne(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss");
return sdf.format(date);
}
public static String getDateDayOne(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
public static String getDateDayTwo(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(date);
}
public static String getHourMin(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
return sdf.format(date);
}
public static String getDateSecTwo(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date);
}
public static int getIntValeHourMin(){
Calendar calendar = Calendar.getInstance(china);
return calendar.get(Calendar.HOUR_OF_DAY) * 60+ calendar.get(Calendar.MINUTE);
}
public static Calendar getTodayHourMinCalendar(int onhour, int onminute){
Calendar calendar = Calendar.getInstance(china);
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, onhour);
calendar.set(Calendar.MINUTE, onminute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar;
}
public static Calendar getTomorrowHourMinCalendar(int onhour, int onminute){
Calendar calendar = Calendar.getInstance(china);
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, onhour);
calendar.set(Calendar.MINUTE, onminute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
return calendar;
}
public static int timeInTheMiddle(int startTime, int endTime){
//-1:在开始时间前;0:在两个时间之间;-1:在结束时间后
int nowTime = getIntValeHourMin();
System.out.println("time in the middle"+startTime +" "+ nowTime +" "+endTime);
if( nowTime< startTime){
return -1;
}else if(startTime <= nowTime && nowTime <= endTime ){
return 0;
}else {
return 1;
}
}
public static Calendar getCalendarFromInt (int timeValue){
Calendar calendar = Calendar.getInstance(china);
int hour = timeValue/60;
int minute = timeValue%60;
calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
return calendar;
}
public static Calendar getCalendarFromLong(long timeValue){
Calendar calendar = Calendar.getInstance(china);
calendar.setTimeInMillis(timeValue);
return calendar;
}
public static int outOfPeriod(int startTime, int period){
//-1:在间隔时间内;0:正好在间隔时间点上,需要上报;1:超过间隔时间,需要上报一次,并休眠到下个间隔时间点上;
int nowTime = getIntValeHourMin();
int nextTurnTime = getNextTurnTimeInt(nowTime,startTime, period);
System.out.println(nowTime+" "+nextTurnTime);
if(nowTime < nextTurnTime){
return -1;
}else if(nextTurnTime == nowTime){
return 0;
}else {
return 1;
}
}
public static int getNextTurnTimeInt(int nowTime ,int startTime, int period){
int beforeTime = (nowTime-startTime)%period;
if(beforeTime ==0 ){
return nowTime;
}else{
return nowTime +(period-beforeTime);
}
}
public static Calendar getNextTurnTime(int startTime, int period){
int nowTime = getIntValeHourMin();
int beforeTime = (nowTime-startTime)%period;
int nextTurn = nowTime +(period-beforeTime);
return getCalendarFromInt(nextTurn);
}
}