在开发中,会遇到切换时间的需求,普通的加减一天,或者加减一个月都很通用,今天给大家介绍的是获取传入时间所在星期的时间范围,这样就可以加减一周了。
public class MathWeekUtils { /** * 获取当前星期周日的时间 */ public static String getSunday(){ String week=getWeek(); String zhou_time1 = null; Date date1=new Date(); Calendar c1 = Calendar.getInstance(); switch (week){ case "星期日": zhou_time1= DateUtils.getTime(date1,"yyyy-MM-dd"); break; case "星期六": c1.set(Calendar.DATE, c1.get(Calendar.DATE) +1); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); break; case "星期五": c1.set(Calendar.DATE, c1.get(Calendar.DATE) +2); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); break; case "星期四": c1.set(Calendar.DATE, c1.get(Calendar.DATE) +3); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); break; case "星期三": c1.set(Calendar.DATE, c1.get(Calendar.DATE) +4); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); break; case "星期二": c1.set(Calendar.DATE, c1.get(Calendar.DATE) +5); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); break; case "星期一": c1.set(Calendar.DATE, c1.get(Calendar.DATE) +6); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); break; } return zhou_time1; } /** * 获取当前星期的周一,周日 * @param date * @param date1 * @param mDateIndex * @param mDateIndex1 * @return */ public static List<String> setTime(Date date, Date date1, TextView mDateIndex, TextView mDateIndex1){ String week=getWeek(); String zhou_time = null; String zhou_time1=null; Calendar c = Calendar.getInstance(); Calendar c1 = Calendar.getInstance(); switch (week){ case "星期日": c.set(Calendar.DATE, c.get(Calendar.DATE) - 6); date = c.getTime(); zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); zhou_time1= DateUtils.getTime(date1,"yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; case "星期六": c.set(Calendar.DATE, c.get(Calendar.DATE) - 5); date = c.getTime(); zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); c1.set(Calendar.DATE, c1.get(Calendar.DATE) +1); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; case "星期五": c.set(Calendar.DATE, c.get(Calendar.DATE) - 4); date = c.getTime(); zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); c1.set(Calendar.DATE, c1.get(Calendar.DATE) +2); date1 = c1.getTime(); zhou_time1=DateUtils.getTime(date1,"yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; case "星期四": c.set(Calendar.DATE, c.get(Calendar.DATE) - 3); date = c.getTime(); zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); c1.set(Calendar.DATE, c1.get(Calendar.DATE) +3); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; case "星期三": c.set(Calendar.DATE, c.get(Calendar.DATE) - 2); date = c.getTime(); zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); c1.set(Calendar.DATE, c1.get(Calendar.DATE) +4); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; case "星期二": c.set(Calendar.DATE, c.get(Calendar.DATE) - 1); date = c.getTime(); zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); c1.set(Calendar.DATE, c1.get(Calendar.DATE) +5); date1 = c1.getTime(); zhou_time1= DateUtils.getTime(date1, "yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; case "星期一": zhou_time= DateUtils.getTime(date, "yyyy-MM-dd"); mDateIndex.setText(zhou_time); c1.set(Calendar.DATE, c1.get(Calendar.DATE) +6); date1 = c1.getTime(); zhou_time1=DateUtils.getTime(date1, "yyyy-MM-dd"); mDateIndex1.setText(zhou_time1); break; } List<String> text=new ArrayList<>(); text.add(zhou_time); text.add(zhou_time1); return text; } public static String getWeek(){ Calendar cal = Calendar.getInstance(); int i = cal.get(Calendar.DAY_OF_WEEK); switch (i) { case 1: return "星期日"; case 2: return "星期一"; case 3: return "星期二"; case 4: return "星期三"; case 5: return "星期四"; case 6: return "星期五"; case 7: return "星期六"; default: return ""; } } }