(Java / Android) Calculate days between 2 dates and present the result in a specific format

前端 未结 3 1535
离开以前
离开以前 2020-12-16 02:25

I am trying to do calculate days between 2 dates as follow:

  1. Obtain current date
  2. Obtain past OR future date
  3. Calculate the difference between n
相关标签:
3条回答
  • 2020-12-16 02:55
    long delta = Date2.getTime() - Date1.getTime();
    
    new Date(delta);
    

    From here, you just pick your format. Maybe use a date formatter? As for determing the future stuff and all that, you could just see if the delta is positive or negative. A negative delta will indicate a past event.

    0 讨论(0)
  • 2020-12-16 02:57

    Well, java/android API has all answers for you:

        Calendar myBirthday=Calendar.getInstance();
        myBirthday.set(1980, Calendar.MARCH, 22);
        Calendar now = Calendar.getInstance();
        long diffMillis= Math.abs(now.getTimeInMillis()-myBirthday.getTimeInMillis());
        long differenceInDays = TimeUnit.DAYS.convert(diffMillis, TimeUnit.MILLISECONDS);
    
    0 讨论(0)
  • 2020-12-16 03:03
    /** 
      *  Returns a string that describes the number of days
      *  between dateOne and dateTwo.  
      *
      */ 
    
    public String getDateDiffString(Date dateOne, Date dateTwo)
    {
        long timeOne = dateOne.getTime();
        long timeTwo = dateTwo.getTime();
        long oneDay = 1000 * 60 * 60 * 24;
        long delta = (timeTwo - timeOne) / oneDay;
    
        if (delta > 0) {
            return "dateTwo is " + delta + " days after dateOne";
        }
        else {
            delta *= -1;
            return "dateTwo is " + delta + " days before dateOne";
        }
    }
    

    Edit: Just saw the same question in another thread: how to calculate difference between two dates using java

    Edit2: To get Year/Month/Week, do something like this:

    int year = delta / 365;
    int rest = delta % 365;
    int month = rest / 30;
    rest = rest % 30;
    int weeks = rest / 7;
    int days = rest % 7;
    
    0 讨论(0)
提交回复
热议问题