2015年11月16日 星期一

[ Java 代碼範本 ] Joda - Calculate the number of days between two dates

Question 
In Java, I want to calculate the number of days between two dates as Date type. 

How-To 
Well to start with, you should only deal with them as strings when you have to. Most of the time you should work with them in a data type which actually describes the data you're working with. I would recommend that you use Joda Time, which is a much better API than Date/Calendar. It sounds like you should use theDays type in this case. You can then use: 
  1. package test  
  2.   
  3. import java.text.SimpleDateFormat  
  4.   
  5. import org.joda.time.DateTime;  
  6. import org.joda.time.Days;  
  7.   
  8.   
  9. String date1Str = '2015/05/03'  
  10. String date2Str = '2015/06/10'  
  11.   
  12. SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd")  
  13.   
  14. Date d1 = sdf.parse(date1Str)  
  15. Date d2 = sdf.parse(date2Str)  
  16.   
  17. DateTime f = new DateTime(d1.getTime())  
  18. DateTime t = new DateTime(d2.getTime())  
  19.   
  20. printf("Between %s ~ %s = %d days!\n", date1Str, date2Str, Days.daysBetween(f, t).getDays()+1)  
Execution result: 
Between 2015/05/03 ~ 2015/06/10 = 39 days!

Supplement 
Joda Online API 
Calculating the difference between two Java date instances

沒有留言:

張貼留言

[ Python 文章收集 ] cmd – Create line-oriented command processors

Source From  Here   Preface   The  cmd  module contains one public class,  Cmd , designed to be used as a base class for command processors ...