1. 程式人生 > >關於Java類Calendar做統計時 獲取日期的一些常見操作

關於Java類Calendar做統計時 獲取日期的一些常見操作

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做統計時 獲取日期的一些常見操作