如何在安卓中获取两个日期之间的周间隔



嗨,我正在编写一个代码,可以显示当前时间和登录时间之间的一周间隔,

我正在添加一个功能,通过它我可以节省登录时间。

public void setWeek() {
    Date today = new Date();
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String dateToStr = format.format(today);
    editor.putString("week", dateToStr).commit();
}
public String getWeek() {
    return pref.getString("week", null);
}

下面的方法计算两个日期之间的星期数。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = dateFormat.parse("2019-01-01");
Date endDate = dateFormat.parse("2019-01-29");
int noOfWeek = calculateWeekNo(startDate, endDate);
   //Option 1
   public int calculateWeekNo(Date start, Date end) {
        Calendar cal = new GregorianCalendar();
        cal.setTime(start);
        int weeks = 0;
        while (cal.getTime().before(end)) {
            cal.add(Calendar.WEEK_OF_YEAR, 1);
            weeks++;
        }
       return weeks;
    }
   // Option 2
    public static int calculateWeekNo(Date start, Date end) {
         Calendar a = new GregorianCalendar();
         Calendar b = new GregorianCalendar();
         a.setTime(start);
         b.setTime(end);
         return b.get(Calendar.WEEK_OF_YEAR) - a.get(Calendar.WEEK_OF_YEAR);
       }

这将帮助你。我使用此条件从输入日期获取天数,并检查天数是否为 7 以运行我的条件。

call conditionForWeek(){
    calendarToday = Calendar.getInstance();
        formatInstallDate = new SimpleDateFormat(FORMAT_DATE_DD_MMM_YY, Locale.ENGLISH);
        currentDate = formatInstallDate.format(calendarToday.getTime());
        installDate = PreferencesManager.getInstance().getString(USER_DATE_OF_INSTALL);
        int differenceInDate = PregnancyAppUtils.getDaysBetweenDates(currentDate, installDate);
        if (differenceInDate > 0 && differenceInDate % 7 == 0) {
                CallYourConditionHere();
        }
}

//This method will calculate difference in days and return the difference in days
    @SuppressLint("SimpleDateFormat")
    public static int getDaysBetweenDates(String currentDate, String installDate) {
        formatConversion = new SimpleDateFormat(FORMAT_DATE_DD_MMM_YY);
        try {
            Date dateCurrent = formatConversion.parse(currentDate);
            Date dateAfterSevenDays;
            //take care of previous app version's date formats
            try {
                dateAfterSevenDays = formatConversion.parse(installDate);
            } catch (ParseException e) {
                dateAfterSevenDays = getCalObjFromDefaultDate(installDate).getTime();
            }
            differenceInDate = dateCurrent.getTime() - dateAfterSevenDays.getTime();
            days = (int) (differenceInDate / (1000 * 60 * 60 * 24));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return days;
    }

最新更新