/**
* 比较两个时间的时分秒大小
* @param startDay 开始时间
* @param endDay 结束时间
* @return 0表示时分秒相等 , 1表示开始时间的时分秒大于结束时间 , -1表示开始时间的时分秒小于结束时间 , 否则返回0
*
*/
public static int compareHourMinuSecond(String startDay, String endDay)
{
long startSecond = countHourMinuSecondTotal(startDay);
long endSecond = countHourMinuSecondTotal(endDay);
if (startSecond > endSecond)
{
return 1;
}
else if (startSecond == endSecond)
{
return 0;
}
else if (startSecond < endSecond)
{
return -1;
}
return 0;
}
/**
* 计算时分秒的总秒数
* @param hour 小时
* @param minute 分钟
* @param second 秒
* @return
*
*/
public static long countTimeSecond(int hour, int minute, int second)
{
return hour * 3600 + minute * 60 + second;
}
/**
* 获取时间中的时分秒的总秒数
* @param time
* 时间
* @return
*
*/
public static long countHourMinuSecondTotal(String time)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d = sdf.parse(time);
Calendar c = Calendar.getInstance();
c.setTime(d);
return countTimeSecond(c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), c.get(Calendar.SECOND));
}
catch (ParseException e)
{
e.printStackTrace();
}
return 0;
}
/**
* 获取当前月的最后一天
* @param time
* 时间
* @param isHourMinSecond
* 是否显示时分秒
* @return
*/
public static String getLastDayOfMonth(String time, boolean isHourMinSecond)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = "";
try
{
Date d = sdf.parse(time);
Calendar cDay = Calendar.getInstance();
cDay.setTime(d);
final int lastDay = cDay.getActualMaximum(Calendar.DAY_OF_MONTH);
Date lastDate = cDay.getTime();
lastDate.setDate(lastDay);
if (isHourMinSecond)
{
s = DateFormat.convertDateToString(lastDate, "yyyy-MM-dd hh:mm:ss");
}
else
{
s = DateFormat.convertDateToString(lastDate, "yyyy-MM-dd");
}
}
catch (ParseException e)
{
e.printStackTrace();
}
return s;
}
/**
* 计算相差多少分钟 (时分秒)
* @param startTime
* 开始时间 如:8:30:00
* @param endTime
* 结束时间 如:12:00:00
* @return
*/
public static int countMinuteSecond(String startTime , String endTime)
{
SimpleDateFormat sdf = new SimpleDateFormat ("HH:mm:ss");
int minu = 0 ;
try
{
long start = sdf.parse(startTime).getTime();
long end = sdf.parse(endTime).getTime();
double ss = (end-start)/1000;
minu = (int)(ss/60);
}
catch (ParseException e)
{
e.printStackTrace();
return minu;
}
return minu;
}
/**
* 在当前时间上添加小时,分钟
* @param dateformat
* 转换格式 yyyy-MM-dd HH:mm:ss
* @param time
* 时间
* @param h
* 小时
* @param m
* 分钟
* @return
*/
public static String addTime(String dateformat , String time ,int h , int m ){
SimpleDateFormat sdf = new SimpleDateFormat (dateformat);
Date date = null;
try
{
date = sdf.parse(time);
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.HOUR_OF_DAY, h);
c.add(Calendar.MINUTE, m);
date = c.getTime();
}
catch (ParseException e)
{
e.printStackTrace();
}
return sdf.format(date);
}