package wsj;
/**
* 当前类所有函数
* -------------
* 判断某时刻str1是否在时间段str2内:isInTime()
* 计算当前时刻到下一时刻有多少秒,numDay为两个时刻相隔的天数:getSeconds()
*/
import java.sql.Time;
public class MyTime {
// 判断某时刻str1是否在时间段str2内
public static boolean isInTime(String str1, String str2) {
// String str1 = "2:00:02";
// String str2 = "3:00:02-20:00:02";
Time curTime = Time.valueOf(str1);
String[] strings = str2.split("-");
Time leftTime = Time.valueOf(strings[0]);
Time rightTime = Time.valueOf(strings[1]);
if (curTime.after(leftTime) && curTime.before(rightTime)) {
return true;
} else {
return false;
}
}
// 计算当前时刻到下一时刻有多少秒,numDay为两个时刻相隔的天数
public static long getSeconds(String timeCur, String timeNext, int numDay) {
String[] strings = timeNext.split(":");
int hour = Integer.parseInt(strings[0]);
int minute = Integer.parseInt(strings[1]);
int second = Integer.parseInt(strings[2]);
long second1 = hour * 3600 + minute * 60 + second;
strings = timeCur.split(":");
hour = Integer.parseInt(strings[0]);
minute = Integer.parseInt(strings[1]);
second = Integer.parseInt(strings[2]);
long daySeconds = 24 * 3600;
if (numDay == 0) {
long second2 = hour * 3600 + minute * 60 + second;
return second1 - second2;
} else {
long second2 = daySeconds - (hour * 3600 + minute * 60 + second);
return second1 + second2 + daySeconds * (numDay - 1);
}
}
public static void main(String[] args) {
// 测试isInTime()
String str1 = "12:00:02";
String str2 = "3:00:02-20:00:02";
System.out.println(isInTime(str1, str2));
System.out.println("---");
// 测试getSeconds()
String str3 = "23:58:59";
String str4 = "23:59:59";
String str5 = "00:00:02";
System.out.println(getSeconds(str3, str4, 0));
System.out.println(getSeconds(str4, str5, 1));
}
}
网友评论