(Java / Android的)计算两个日期和present结果之间的日子以特定格式 [英] (Java / Android) Calculate days between 2 dates and present the result in a specific format
问题描述
我试图做计算两个日期之间的天如下:
- 在获取当前日期
- 在获取过去或将来的日期
- 计算无之间的差异。 1,没有。 2
- present日期按以下格式
- 如果结果是在过去的(2小时前)或将来(2天)
- 格式:日,周,月,年
我尝试不同的方法,但不能得到我想要上面的结果。我发现的是安卓的的DatePicker 的对话框转换日期为整数。我还没有找到一种方法,使DatePicket小部件返回,而不是整数日期变量。
私人DatePickerDialog.OnDateSetListener mDateSetListener =
新DatePickerDialog.OnDateSetListener(){
公共无效onDateSet(DatePicker的观点,** INT **年,
** INT ** monthOfYear,** INT ** DAYOFMONTH){
enteredYear =年;
enteredMonth = monthOfYear;
enteredDay = DAYOFMONTH;
}
};
我试图将系统日期整数,基于上述转换,但试图计算两个日期之间的日子,这并没有真正的工作。
私人无效getSystemDate(){
最后的日历C = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
systemYear = mYear;
mMonth = c.get(Calendar.MONTH);
systemMonth = mMonth + 1;
MDAY = c.get(Calendar.DAY_OF_MONTH);
systemDay = MDAY;
}
/ **
*返回描述的天数的字符串
* dateOne和dateTwo之间。
*
* /
公共字符串getDateDiffString(日期dateOne,日期dateTwo)
{
长timeOne = dateOne.getTime();
长timeTwo = dateTwo.getTime();
长。一天= 1000 * 60 * 60 * 24;
长三角洲=(timeTwo - timeOne)/。一天;
如果(增量大于0){
返回dateTwo是+增量dateOne天后+;
}
其他 {
增量* = -1;
返回dateTwo是+增量dateOne前几天+;
}
}
编辑:刚才看到在另一个线程同样的问题: <一href="http://stackoverflow.com/questions/3491679/how-to-calculate-difference-between-two-dates-using-java">how计算使用Java 两个日期之间的差异
EDIT2:为了获得年/月/周,做这样的事情:
INT年=增量/ 365;
INT休息=三角洲%365;
INT月=休息/ 30;
休息休息= 30%;
诠释周=休息/ 7;
INT天=其余的7%;
I am trying to do calculate days between 2 dates as follow:
- Obtain current date
- Obtain past OR future date
- Calculate the difference between no. 1 and no. 2
- Present the dates in the following format
- If the result is in past (2 day ago) or in the future (in 2 days)
- Format will: days, weeks, months, years
I tried different ways but couldn't get the result I wanted above. I found out that Android DatePicker dialog box convert date into Integer. I have not found a way to make DatePicket widget to return date variables instead of integer.
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, **int** year,
**int** monthOfYear, **int** dayOfMonth) {
enteredYear = year;
enteredMonth = monthOfYear;
enteredDay = dayOfMonth;
}
};
I tried to convert the system date to Integer, based on the above, but this doesn't really work when trying to calculate days between 2 dates.
private void getSystemDate(){
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
systemYear = mYear;
mMonth = c.get(Calendar.MONTH);
systemMonth = mMonth + 1;
mDay = c.get(Calendar.DAY_OF_MONTH);
systemDay = mDay;
}
/**
* Returns a string that describes the number of days
* between dateOne and dateTwo.
*
*/
public String getDateDiffString(Date dateOne, Date dateTwo)
{
long timeOne = dateOne.getTime();
long timeTwo = dateTwo.getTime();
long oneDay = 1000 * 60 * 60 * 24;
long delta = (timeTwo - timeOne) / oneDay;
if (delta > 0) {
return "dateTwo is " + delta + " days after dateOne";
}
else {
delta *= -1;
return "dateTwo is " + delta + " days before dateOne";
}
}
Edit: Just saw the same question in another thread: how to calculate difference between two dates using java
Edit2: To get Year/Month/Week, do something like this:
int year = delta / 365;
int rest = delta % 365;
int month = rest / 30;
rest = rest % 30;
int weeks = rest / 7;
int days = rest % 7;
这篇关于(Java / Android的)计算两个日期和present结果之间的日子以特定格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!