1

在我的应用程序中,我有 2 个字段,1 个是日期,另一个是数据库表中的 recc(是一个整数)。

现在我将解释我的要求:

考虑假设用户输入今天的日期(26-07-2012)并且recc为10。这意味着从今天的日期到那个+10的日期。我从今天的日期得到了第10个日期。但我想要的是今天的第10天意味着它肯定也会到下个月(26-07-2012----5-08-2012),但我必须知道这个特定月份的日期计数,(即)26-07- 2012----5-08-2012 这个月有多少天。我想我已经清楚地解释了我的问题,如果没有,我准备给出更多解释。提前谢谢。

日期值:

 EditText date=(EditText)findViewById(R.id.startdateexp);       
             String startdate=date.getText().toString();
4

3 回答 3

0

如果您使用的是 Date 类,则可以通过转换为毫秒的天数来抵消它以创建新的 Date:

Date datePlusRecc = new Date(oldDate.getTime() + recc*86400000);  // 86400000 = 24*60*60*1000

请注意,这仅在 recc 相对较小(< 大约 20)时可用,否则乘法将溢出。

于 2012-07-26T05:52:07.077 回答
0

只需使用 java.util.Date 类与您的日期相结合,以毫秒为单位。

在 for 循环中,以毫秒为单位将一天添加到一个版本并将其转换回日期。从日期对象中获取月份并将其与当前月份进行比较。一旦月份是新月份,您就会知道当月的总天数。

Date currentDate = new Date(currentMillis);
long countingMillis = currentMillis;
int daysInSameMonth = 0;
while(true){
    daysInSameMonth++; // if the actual date schould not count move this line at the button of the while
    countingMillis += 1000*60*60*24;
    Date dt = new Date(countingMillis);
    if(currentDate.getMonth() != dt.getMonth())
         break;
}
于 2012-07-26T05:53:32.963 回答
0

您可以通过以下方式做到这一点: 1. 从数据库中获取日期。

现在通过以下方法从日期获取月份中的日期:

DateFormat iso8601Format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
    date = iso8601Format.parse(dateTime);
    } catch (ParseException e) {
    Log.e(TAG, "Parsing ISO8601 datetime failed", e);
    }
    Calendar cal=Calendar.getInstance();
    cal.setTime(date);
    int currentDay= cal.get(Calendar.DAY_OF_MONTH);

通过以下方式计算每月的最后一天:

    int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
于 2012-07-26T06:50:20.330 回答