2017-06-06 107 views
-2

我想从选择日期找到到期日,但它没有得到。所以请帮助我如何获得截止日期。以下是我的代码如下。如何从选定的日期找到到期日?

Calendar date = Calendar.getInstance(); 
date.setTimeInMillis(date_in_mil); 
date.add(Calendar.DAY_OF_WEEK_IN_MONTH, 40); 

这是为我正在创建的怀孕应用程序。

+1

请添加更多信息。什么是date_in_mil?当你运行代码时会发生什么?你期望的结果是什么,你会得到什么结果? –

+0

你想在date_in_mil的40天后得到一个日期吗? –

+0

什么是截止日期?清楚地说明。 –

回答

1

您正在将月份中的星期几添加到40。与您实际需要的相比,这具有不同的表示形式。 试试这个,而不是

date.add(Calendar.DAY_OF_YEAR, 40); 

请阅读官方文档here


编辑


这里是完整的解决方案:

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(); 
} 
+0

好吧,但我想找到截止日期从选择日期,我是如此在截止日期计算器计数40周如此 –

+0

这取决于你想要添加什么。如果您希望从今天开始添加40周,则将从Calendar.DAY_OF_YEAR更改为Calendar.WEEK_OF_YEAR。这将增加从一年到目前的 –

+0

是+40周,但我得到错误c.setTimeInMillis(Long.parseLong(current_date));此行建议我能做些什么 –

1

所以你试图从毫秒提供的日期中获得40天?

Calendar date = Calendar.getInstance(); 
date.setTimeInMillis(date_in_mil); 
date.add(Calendar.DAY_OF_YEAR, 40); 

或者(从您的意见): 日历日期= Calendar.getInstance(); //这已经是当天 date.add(Calendar.DAY_OF_YEAR,40);

你的问题是,你正在使用DAY_OF_WEEK_IN_MONTH代替DAY_OF_WEEK

+0

不,没有问题,但date.setTimeInMillis(date_in_mil);在这一行中得到错误,请帮助我 –

+0

这里是我的代码 –

+0

Calendar c = Calendar.getInstance(); year = c.get(Calendar.YEAR); month = c.get(Calendar.MONTH); day = c.get(Calendar.DAY_OF_MONTH); c.setTimeInMillis(Long.parseLong(current_date)); c.add(Calendar.WEEK_OF_YEAR,40); –