android中的数据检索

时间:2012-07-26 05:29:54

标签: android date

在我的应用程序中,我有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();

3 个答案:

答案 0 :(得分:0)

如果您正在使用Date类,则可以将其转换为转换为毫秒的天数来创建新日期:

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

请注意,仅当recc相对较小(<约20)时才可以使用,否则乘法会溢出。

答案 1 :(得分:0)

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

在for循环中,以毫秒为单位添加一天,然后将其转换回Date。从Date对象中获取月份并将其与当前月份进行比较。只要月份是新的月份,您就可以获得当月的总天数。

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;
}

答案 2 :(得分: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);