1.根据当前时间给查询起始结束时间赋值。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = new Date(System.currentTimeMillis() - mDayDefault * 24 * 60 * 60 * 1000);//获取起始时间(提前n天)
Date endDate = new Date(System.currentTimeMillis());//获取当前时间
mStartCalendar = Calendar.getInstance();
mEndCalendar = Calendar.getInstance();
mEndCalendar.setTime(endDate);
mStartCalendar.setTime(startDate);
idStartdateEdittext.setText(formatter.format(startDate));
idEnddateEdittext.setText(formatter.format(endDate));
2.初始化DatePickerDialog 并根据选择的日期 给EditText赋值
idStartdateEdittext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
// TODO Auto-generated method stub
int mStartYear, mStartMonth, mStartDay;
mStartYear = year;
mStartMonth = (month + 1) < 10 ? 0 + (month + 1) : (month + 1);
mStartDay = (day < 10) ? 0 + day : day;
//
//更新EditText控件日期 小于10加0
idStartdateEdittext.setText(new StringBuilder().append(mStartYear).append("-")
.append(mStartMonth)
.append("-")
.append(mStartDay));
mStartCalendar.set(year, month, day);
}
}, mStartCalendar.get(Calendar.YEAR), mStartCalendar.get(Calendar.MONTH),
mStartCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});
idEnddateEdittext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DatePickerDialog(mContext, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
// TODO Auto-generated method stub
int mEndYear, mEndMonth, mEndDay;
mEndYear = year;
mEndMonth = (month + 1) < 10 ? 0 + (month + 1) : (month + 1);
mEndDay = (day < 10) ? 0 + day : day;
//更新EditText控件日期 小于10加0
idEnddateEdittext.setText(new StringBuilder().append(mEndYear).append("-")
.append(mEndMonth)
.append("-")
.append(mEndDay));
mEndCalendar.set(year, month, day);
}
}, mEndCalendar.get(Calendar.YEAR), mEndCalendar.get(Calendar.MONTH),
mEndCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
}
);
注意:EditText用的是mEndMonth,而mEndCalender用的是自己的month。这里楼主就搞错了。
3.如何修改给当天的日期 按照天 周 月修改
mFlowLayout.setOnSelectListener(new TagFlowLayout.OnSelectListener() {
@Override
public void onSelected(Set<Integer> selectPosSet) {
for (int pos : selectPosSet) {
Date date = new Date(System.currentTimeMillis());
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
switch (pos) {
case 0:
gc.setTime(date);
idStartdateEdittext.setText(df.format(date));
break;
case 1:
gc.setTime(date);
gc.add(Calendar.WEEK_OF_MONTH, -1);
mStartCalendar.setTime(gc.getTime());
idStartdateEdittext.setText(df.format(gc.getTime()));
break;
case 2:
gc.setTime(date);
gc.add(Calendar.MONTH, -1);
mStartCalendar.setTime(gc.getTime());
idStartdateEdittext.setText(df.format(gc.getTime()));
break;
}
mStartCalendar.setTime(gc.getTime());
mEndCalendar.setTime(new Date(System.currentTimeMillis()));
SearchLog();
}
}
});
注意 这个gc也可以用Canlender.instance 返回(工厂)。
4.为了查询起始时间从0开始,结束时间为23.59.95
mStartCalendar.set(mStartCalendar.get(Calendar.YEAR), mStartCalendar.get(Calendar.MONTH), mStartCalendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
mEndCalendar.set(mEndCalendar.get(Calendar.YEAR), mEndCalendar.get(Calendar.MONTH), mEndCalendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
收工!