我有一个开始日期(日,月,年),需要从该日期算起4周的日期。我该如何计算呢?我知道如何使用日历找到两个日期之间的差异,所以我假设我离答案不太远......谢谢!!!
编辑:
这是我最后使用的代码。它返回一个String,其值为日期范围,格式为“MM / dd / YYYY - MM / dd / YYYY”
@SuppressLint("SimpleDateFormat")
private String getSessionDate(int position) {
MySession ms = mSessionList.get(position);
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");
Calendar calendar = Calendar.getInstance();
calendar.set(ms.getStartYear(), ms.getStartMonth(), ms.getStartDay());
Date startDate = calendar.getTime();
String durationString = ms.getDurationString(); // Format is "## weeks"
int i = 0;
while (Character.isDigit(durationString.charAt(i))) {
i++;
}
int weeks = Integer.parseInt(durationString.substring(0, i));
calendar.add(Calendar.WEEK_OF_YEAR, weeks);
return (format.format(startDate) + " - " + format.format(calendar.getTime()));
}
答案 0 :(得分:5)
您可以使用Calender
实例。
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentdate);
calendar.add(Calendar.DAY_OF_YEAR, no_of_days)
Date newDate = calendar.getTime();
您可以通过添加或减去天数来计算日期
1周后获取日期
calendar.add(Calendar.DAY_OF_YEAR, 7);
在1周前获取日期
calendar.add(Calendar.DAY_OF_YEAR, -7);
答案 1 :(得分:3)
Date date=null;
SimpleDateFormat originalFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = originalFormat.parse(strDate); // strDate is your date from which you want to get date after 4 weeks
} catch (Exception e) {
e.printStackTrace();
}
long timeFor4week=4*7*24 * 60 * 60 * 1000; /// here 24*60*60*1000 =24 hours i.e 1 day
long timeAfter4week=date.getTime()+timeFor4week;
String finalDateString=originalFormat.format(new Date(timeAfter4week));
所以你可以在4周后获得一天。