0
我是初學者,我想將毫秒添加到java時間戳(以毫秒爲單位),並以毫秒爲單位獲得結果時間以供進一步操作。我試圖通過每毫秒增加時間戳並檢查它是否着陸到假期或週末,然後跳過那一天來做到這一點。這樣做不是很明智。永遠。有人已經發明瞭輪子嗎?Java將毫秒添加到毫秒時間戳省略週末和節假日
這裏是我可憐的,非常糟糕的代碼(不要使用此,需要年齡)
public static class businessdays {
public static long addWorkingTime(long timestamp, long milliseconds){
for (int i=0;i<milliseconds;i ++){
long test_timestamp = timestamp + 1;
while (isHoliday(test_timestamp)){
System.out.println("isHoliady");
timestamp += 24 * 60 * 60 * 1000; //jump weekend or holiday
test_timestamp += (12 * 60 * 60 * 1000);
}
timestamp += i;
}
return timestamp;
}
private static boolean isHoliday(long timestamp){
List<String> holidays = new ArrayList<String>(Arrays.asList("01/01,05/01,06/01,10/20,12/12,12/25,12/26".split(",")));
SimpleDateFormat dw = new SimpleDateFormat("u"); //date of the week - 1 - 7
SimpleDateFormat dd = new SimpleDateFormat("dd"); //1 - 30/31
SimpleDateFormat dm = new SimpleDateFormat("MM"); //1 - 12
Date test_timeDate = new Date(timestamp);
String date = dm.format(test_timeDate)+"/"+dd.format(test_timeDate); //MM/dd
String doweek = dw.format(test_timeDate);
if (holidays.contains(date) || doweek.contains("6") || doweek.contains("7")){
return true;
}
return false;
}
}
你想達到什麼目的。增加毫秒是實現某些功能的一種方式。不是最終目標。你最終的目標是什麼? –
像JB Nizet說的 - 你想達到什麼目的?時間戳精確到毫秒(它永遠不會)是否重要? 你不能檢查每秒說,然後決定使用或不使用時間戳嗎?例如,如果你在Windows上(這不是實時操作系統),應用程序的毫秒可能與「真實生活」毫秒差別很大,即不要期望從毫秒到絕對精度 - 如果你這樣做,你會失望! – Frank
我的最終目標是獲得一個函數,當給定當前時間戳並添加28小時或更長時間時,我應該按照工作日計算截止日期 – Martin