Mengira Tarikh dan Perbezaan Masa dalam Java
Matlamat coretan kod ini adalah untuk menentukan perbezaan masa antara dua tarikh tertentu, dinyatakan dalam jam, minit dan saat. Walau bagaimanapun, kod yang disediakan nampaknya menghasilkan hasil yang salah. Mari kita periksa isu ini dan berikan penyelesaian yang lebih tepat.
Kod mengira perbezaan masa dengan menolak milisaat yang diwakili oleh dua tarikh (d1 dan d2). Walaupun pendekatan ini secara amnya betul, isu ini timbul dalam pengiraan seterusnya untuk minit dan jam.
Apabila menukar milisaat kepada minit, kod tersebut salah menggunakan / bukannya TimeUnit.MILLISECONDS.toMinutes. Begitu juga, selama berjam-jam, ia menggunakan / bukannya TimeUnit.MILLISECONDS.toHours. Operasi ini akan menghasilkan pengiraan yang salah, yang membawa kepada percanggahan yang diperhatikan dalam output.
Untuk membetulkan isu ini, kami boleh menggunakan kelas java.util.concurrent.TimeUnit, yang menyediakan kaedah yang mudah untuk menukar antara masa yang berbeza unit. Berikut ialah coretan kod yang diperbetulkan:
... // Calculate time difference in milliseconds long diff = d2.getTime() - d1.getTime(); // Convert to seconds, minutes, and hours using TimeUnit long seconds = TimeUnit.MILLISECONDS.toSeconds(diff); long minutes = TimeUnit.MILLISECONDS.toMinutes(diff); long hours = TimeUnit.MILLISECONDS.toHours(diff); System.out.println("Time in seconds: " + seconds + " seconds."); System.out.println("Time in minutes: " + minutes + " minutes."); System.out.println("Time in hours: " + hours + " hours."); ...
Menggunakan kod yang diperbetulkan ini, kita boleh memperoleh hasil yang dijangkakan:
Time in seconds: 225 seconds. Time in minutes: 3 minutes. Time in hours: 0 hours.
Dengan menggabungkan penukaran yang betul menggunakan TimeUnit, kod mengira masa dengan tepat perbezaan antara dua tarikh, seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Tarikh dan Masa dengan Tepat di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!