安卓开发:查询本周、本月等的起始日期

用法:

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

  

原文地址:https://www.cnblogs.com/bruce27/p/5137749.html