我想从选择的日期中找到到期日,但没有得到。所以请帮助我如何获得到期日。下面是我的代码。
Calendar date = Calendar.getInstance();
date.setTimeInMillis(date_in_mil);
date.add(Calendar.DAY_OF_WEEK_IN_MONTH, 40);
这是我正在创建的怀孕应用程序。
我想从选择的日期中找到到期日,但没有得到。所以请帮助我如何获得到期日。下面是我的代码。
Calendar date = Calendar.getInstance();
date.setTimeInMillis(date_in_mil);
date.add(Calendar.DAY_OF_WEEK_IN_MONTH, 40);
这是我正在创建的怀孕应用程序。
您正在将 40 添加到月份中的星期几。与您实际想要的相比,这具有不同的表示形式。试试这个
date.add(Calendar.DAY_OF_YEAR, 40);
请在此处阅读官方文档
编辑
这是完整的解决方案:
String currentDate = "01/05/2017";
try {
Date curentDateObj = new SimpleDateFormat("dd/mm/yyyy").parse(currentDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(curentDateObj);
calendar.add(Calendar.WEEK_OF_YEAR, 40);
System.out.println(calendar.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
所以你想从以毫秒为单位提供的那一天起获得 40 天?
Calendar date = Calendar.getInstance();
date.setTimeInMillis(date_in_mil);
date.add(Calendar.DAY_OF_YEAR, 40);
或者(根据您的评论): Calendar date = Calendar.getInstance(); //这已经是当前日期 date.add(Calendar.DAY_OF_YEAR, 40);
您的问题是您使用的是 DAY_OF_WEEK_IN_MONTH 而不是 DAY_OF_WEEK