Advertisement
KuoHsiangYu

TestDate

Jul 6th, 2020
984
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. // https://www.facebook.com/groups/1403852566495675/permalink/2664876580393261/
  2. /*
  3. 附上我Google搜尋時查到的所有參考資料。
  4. 這題目主要是要考驗你如何用Java API解析字串轉成日期物件
  5. 還有如何把二個日期物件相減,取出差值,轉換成天數、小時、分鐘。
  6.  
  7. java 日期格式化-- SimpleDateFormat 的使用。字符串轉日期,日期轉字符串
  8. https://reurl.cc/oLE4oM
  9. .
  10. [語法]Scanner的取讀種類
  11. https://reurl.cc/exK7YQ
  12. .
  13. 日期操作類(DateFormat與SimpleDateFormat)的區別和實例
  14. https://reurl.cc/mnK411
  15. .
  16. java取絕對值math.abs函數使用方法
  17. https://reurl.cc/d04lMV
  18. .
  19. java 日期相差多少個小時數
  20. https://reurl.cc/AqvLNK
  21. .
  22. */
  23. package com.sample;
  24.  
  25. import static java.lang.System.out;
  26.  
  27. import java.text.ParseException;
  28. import java.text.SimpleDateFormat;
  29. import java.util.Date;
  30. import java.util.Scanner;
  31.  
  32. public class TestDate {
  33.     public static void main(String[] args) {
  34.         Scanner scanner = new Scanner(System.in);
  35.         String dateStr1 = "";
  36.         String dateStr2 = "";
  37.         Date date1 = null;
  38.         Date date2 = null;
  39.  
  40.         out.println("範例日期格式:2020/2/22.14:40");
  41.  
  42.         out.print("請輸入日期1:");
  43.         dateStr1 = scanner.next();
  44.  
  45.         out.print("請輸入日期2:");
  46.         dateStr2 = scanner.next();
  47.  
  48.         // 比對範例日期格式:[2020/2/22.14:40] → [yyyy/MM/dd.HH:mm]
  49.         // 設定輸入文字解析成日期的格式
  50.         SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy/MM/dd.HH:mm");
  51.  
  52.         try {
  53.             date1 = sdfInput.parse(dateStr1);// 把字串解析成 java.util.Date物件
  54.             date2 = sdfInput.parse(dateStr2);
  55.         } catch (ParseException e) {
  56.             e.printStackTrace();
  57.         }
  58.  
  59.         long time1 = date1.getTime();// 取出Date物件的毫秒數
  60.         long time2 = date2.getTime();
  61.  
  62.         long difference = Math.abs(time2 - time1);
  63.  
  64.         long day = difference / (24 * 60 * 60 * 1000);// 1000毫秒=1秒, 60秒=1分鐘, 60分鐘=1小時, 24小時=1天
  65.         long hour = (difference / (60 * 60 * 1000) - (day * 24));
  66.         long minutes = ((difference / (60 * 1000)) - (day * 24 * 60) - (hour * 60));
  67.  
  68.         out.printf("二個日期相差:%d:%d%n", hour, minutes);
  69.  
  70.         if (scanner != null) {
  71.             scanner.close();
  72.             scanner = null;
  73.         }
  74.         out.println("finish");
  75.     }// end of main method
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement