Android 从给定日期开始的一年中的一周

Android 从给定日期开始的一年中的一周,android,calendar,Android,Calendar,这有点难以解释,但我需要开始计算给定日期后的周数。然后,我必须得到当前日期,并检查它是什么周数 已经尝试了一些事情,但无法解决这个问题。。。 谢谢 p、 可能得到两个日期之间的天数差除以7?我该怎么做 该类具有执行此操作所需的所有方法: Calendar c = Calendar.getInstance(); c.set(year, month, day); int weekNo = c.get(Calendar.WEEK_OF_YEAR); 我认为你提到的获得差异的方法会很好。您只需将给定日

这有点难以解释,但我需要开始计算给定日期后的周数。然后,我必须得到当前日期,并检查它是什么周数

已经尝试了一些事情,但无法解决这个问题。。。 谢谢

p、 可能得到两个日期之间的天数差除以7?我该怎么做

该类具有执行此操作所需的所有方法:

Calendar c = Calendar.getInstance();
c.set(year, month, day);
int weekNo = c.get(Calendar.WEEK_OF_YEAR);

我认为你提到的获得差异的方法会很好。您只需将给定日期设置为一年中的一天,然后使用Calendar类获取一年中的当前日期

//Set Given Date to what you want it to be, eg 10th March 2006. (Months are indexed from 0-11)
Calendar calendarGivenDate = Calendar.getInstance();
            calendarGivenDate.set(Calendar.DAY_OF_MONTH, 10);
            calendarGivenDate.set(Calendar.MONTH_OF_YEAR, 2);
            calendarGivenDate.set(Calendar.YEAR, 2006);

//Receive the day of the year for what you previously set
    int givenDateDayOfYear = calendarGivenDate.get(Calendar.DAY_OF_YEAR);

//Receive current day of year
Calendar calendarCurrentDate = Calendar.getInstance();
    int currentDateDayOfYear = calendarCurrentDate.get(Calendar.DAY_OF_YEAR);

//Get difference in number of years
            int currentYear = calendarCurrentDate.get(Calendar.YEAR);
            int givenYear = calendarGivenDate.get(Calendar.YEAR);
            int yearDifference = currentYear - givenYear;


//Find difference, divide by 7 (Round value down to get the difference in whole weeks)
double differenceDays = currentDateDayOfYear - givenDateDayOfYear + (365*yearDifference);
double differenceWeeks = Math.floor(differenceDays / 7);

我不确定我最后的数学是否完全正确,因为我只是想在脑海中想象一下,但试一试?希望这有帮助。

展示并使用您尝试过的方法。我尝试过一些方法,例如查找给定日期的周数,然后从当前周数中减去它……我得到了一个fc。我是安卓编程的高手。还在学习。目前正在尝试找出如何获取两个日期之间的天数,我想我可能已经找到了一些东西。您还需要设置calendarGivenDate的年份,并获取calendarCurrentDate的年份,然后为calendarCurrentDate位于calendarGivenDate之前的每一年添加365天。谢谢@Matt Harris;)一年中最糟糕的时间是测试像这样的东西,xDI似乎不能整天到几周。。。本周的开始日期应始终与给定日期相同。您到底遇到了什么问题?我不太确定,因为我不知道如何排除故障,但如果我将给定日期设置为2011年1月1日,我会收到47的差异,但如果我正确,那将是11月中旬。。。不太确定编辑:已经算出了(双倍)