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