繁体   English   中英

如何在Android中的两个日期之间获取星期间隔?

[英]How to get week interval in between two dates in android?

嗨,我正在编写代码,以显示当前时间和登录时间之间的星期间隔,

我添加了一个可以节省登录时间的功能。

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);
}

这将帮助您。 我使用此条件从输入日期获取了天数,并检查是否有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;
    }

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

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);
       }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM