安卓开发:查询本周、本月等的起始日期
用法:
SearchDate date = new SearchDate(index);//index值为0到4,含义见下面代码
String startTime = date.getStartTime();
String endTime = date.getEndTime();
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class SearchDate {
private String startTime;
private String endTime;
public SearchDate(int index){
int y, m, d;
Calendar c = Calendar.getInstance();
y = c.get(Calendar.YEAR);
m = c.get(Calendar.MONTH) + 1;
d = c.get(Calendar.DAY_OF_MONTH);
SimpleDateFormat format = new SimpleDateFormat("yyyy-M-d");
startTime ="";
endTime = "";
switch(index){
case 0://今天
c = Calendar.getInstance();
startTime = format.format(c.getTime());
endTime = format.format(c.getTime());
break;
case 1://本周
c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SUNDAY);
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
startTime = format.format(c.getTime());
c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SUNDAY);
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
endTime = format.format(c.getTime());
break;
case 2://本月
c = Calendar.getInstance();
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
startTime = format.format(c.getTime());
c = Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH,
c.getActualMaximum(Calendar.DAY_OF_MONTH));
endTime = format.format(c.getTime());
break;
case 3://本季度
if(m<=3){
startTime = y + "-1-1";
endTime = y + "-3-31";
}else if(m<=6){
startTime = y + "-4-1";
endTime = y + "-6-30";
}else if(m<=9){
startTime = y + "-7-1";
endTime = y + "-9-30";
}else {
startTime = y + "-10-1";
endTime = y + "-12-31";
}
break;
case 4://本年
c = Calendar.getInstance();
startTime = y + "-1-1";
endTime = y + "-12-31";
break;
}
}
public String getStartTime() {
return startTime;
}
public String getEndTime() {
return endTime;
}
}

浙公网安备 33010602011771号