關於Java類Calendar做統計時 獲取日期的一些常見操作
阿新 • • 發佈:2018-11-27
for exc oda tab tac lse 後臺 sta 計算月份
1、獲取本周的周一到周日
//通過調整日歷,獲得本天所屬周的周一和周日
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=new GregorianCalendar(); cal.setFirstDayOfWeek(Calendar.MONDAY); cal.setTime(new Date()); cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek()); String startTime1 = sdf.format(cal.getTime()); cal.set(Calendar.DATE, cal.get(cal.DATE)+ 6); String endTime1 = sdf.format(cal.getTime()); date = startTime1+"~"+endTime1;
2、根據本周的時間獲得上周的周一和周日Calendar calendar = Calendar.getInstance();
Calendar calendar = Calendar.getInstance();
calendar.setTime(startTime);//startTime當前查詢周的周一(不一定是本周,也可以是指定查詢某一天的周一)
calendar.set(Calendar.DATE, calendar.get(calendar.DATE)-1);
end2 = sdf.parse(sdf.format(calendar.getTime()));
calendar.set(Calendar.DATE, calendar.get(calendar.DATE) -6);
start2 = sdf.parse(sdf.format(calendar.getTime()));
3、按照查詢的某周的周一到周日獲取指定周的周數據
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //遍歷日期來查詢,保證一天一查,查詢結果是對的 Calendar c = Calendar.getInstance(); c.setTime(startTime); Date time= sdf.parse(sdf.format(c.getTime())); while(time.getTime()<=endTime.getTime()) { //不是今天 if(time.getTime()!=sdf.parse(sdf.format(new Date())).getTime()) { SalesOrderStatDay dayObj = salesOrderStatDayDAO.getDataByDate(userId,time); list.add(dayObj); } else { //統計一下今天的報單數據,因為後臺數據是使用quartz定時任務在零點才去統計當天數據,為了能看到當天數據 只能去實時查詢 SalesOrderStatDay dayObj = getTodayData(userId); list.add(dayObj); } c.add(Calendar.DATE, 1); time = sdf.parse(sdf.format(c.getTime()));//從周一加到周日 }
4、獲取指定月份
sdf= new SimpleDateFormat("yyyy-MM"); Calendar calendar = Calendar.getInstance(); try { calendar.setTime(sdf.parse(month)); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } calendar.set(calendar.MONTH, calendar.get(calendar.MONTH) -1);//進行減一操作,因為系統計算月份是從0開始 date2 = sdf.format(calendar.getTime());
5、按照月份查詢每一天數據
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdflll= new SimpleDateFormat("yyyy-MM-dd"); Date today = sdflll.parse(sdflll.format(new Date())); Calendar cal = Calendar.getInstance(); cal.setTime(sdf.parse(date)); //總天數 int dayNum = cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DAY_OF_MONTH,1); for(int i=1;i<=dayNum;i++) { Date time = sdflll.parse(sdflll.format(cal.getTime())); //不是今天 if(cal.getTime()!=today.getTime()) { SalesOrderStatDay dayObj = salesOrderStatDayDAO.getDataByDate(userId,time); list.add(dayObj); } else { //統計一下今天的報單數據 SalesOrderStatDay dayObj = getTodayData(userId); list.add(dayObj); } cal.add(Calendar.DATE, 1);//日期加一 }
關於Java類Calendar做統計時 獲取日期的一些常見操作