java calendar操作2019-03-08

/**

? ? * 獲取今日開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setDayRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(Calendar.MILLISECOND,0);

? ? ? ? calendar.set(Calendar.SECOND,0);

? ? ? ? calendar.set(Calendar.MINUTE,0);

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,0);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,24);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取昨天開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setYesterdayRange(PageData condition) {

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(Calendar.MILLISECOND,0);

? ? ? ? calendar.set(Calendar.SECOND,0);

? ? ? ? calendar.set(Calendar.MINUTE,0);

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,0);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,-24);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲得最近三天的開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setThreeRange(PageData condition) {

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(Calendar.MILLISECOND,0);

? ? ? ? calendar.set(Calendar.SECOND,0);

? ? ? ? calendar.set(Calendar.MINUTE,0);

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,24);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,-72);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲得近一周的開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setDaySevenRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,24);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,-168);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲得近一月的開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setDayTRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,24);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY,-720);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取本周開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setWeekRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.DAY_OF_WEEK, 7);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取上周開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setLastWeekRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.DAY_OF_WEEK, -7);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取本月開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setMonthRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.DAY_OF_WEEK, 7);

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY, 24);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取上月開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setLastMonthRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.add(Calendar.MONTH, -1);

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.DAY_OF_WEEK, 7);

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

? ? ? ? calendar.set(Calendar.HOUR_OF_DAY, 24);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取本季度開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setQuarterRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),? ? ? ? calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? int currentMonth = calendar.get(Calendar.MONTH) + 1;

? ? ? ? try {

? ? ? ? ? ? if (currentMonth >= 1 && currentMonth <= 3)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 0);

? ? ? ? ? ? else if (currentMonth >= 4 && currentMonth <= 6)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 3);

? ? ? ? ? ? else if (currentMonth >= 7 && currentMonth <= 9)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 6);

? ? ? ? ? ? else if (currentMonth >= 10 && currentMonth <= 12)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 9);

? ? ? ? ? ? calendar.set(Calendar.DATE, 1);

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.MONTH, 3);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取上季度開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setLastQuarterRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? int currentMonth = calendar.get(Calendar.MONTH) + 1;

? ? ? ? try {

? ? ? ? ? ? if (currentMonth >= 1 && currentMonth <= 3)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 0);

? ? ? ? ? ? else if (currentMonth >= 4 && currentMonth <= 6)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 3);

? ? ? ? ? ? else if (currentMonth >= 7 && currentMonth <= 9)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 6);

? ? ? ? ? ? else if (currentMonth >= 10 && currentMonth <= 12)

? ? ? ? ? ? ? ? calendar.set(Calendar.MONTH, 9);

? ? ? ? ? ? calendar.set(Calendar.DATE, 1);

? ? ? ? } catch (Exception e) {

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? ? ? calendar.add(Calendar.MONTH, -3);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.MONTH, 3);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取本年開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setYearRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), 0, calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.YEAR, 1);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * 獲取上一年開始時(shí)間和結(jié)束時(shí)間

? ? * @param condition

? ? * @return

? ? */

? ? private void setLastYearRange(PageData condition){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? calendar.set(calendar.get(Calendar.YEAR), 0, calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));

? ? ? ? calendar.add(Calendar.YEAR, -1);

? ? ? ? condition.put("startTime",calendar.getTime());

? ? ? ? calendar.add(Calendar.YEAR, 1);

? ? ? ? condition.put("stopTime",calendar.getTime());

? ? }

? ? /**

? ? * ("startTime" -> "Fri Jun 08 00:00:00 CST 2018")String的Date轉(zhuǎn)為String類型的date? ?

? ? */

? ? private String strToformatDate(String date){

? ? ? ? String str="";

? ? ? ? Date date1=new Date();

? ? ? ? try {

? ? ? ? ? ? DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);

? ? ? ? ? ? date1 = df.parse(date);

? ? ? ? ? ? df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

? ? ? ? ? ? str = df.format(date1);

? ? ? ? }catch (Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? ? ? return str;

? ? }

? ? /**

? ? * ("startTime" -> "Fri Jun 08 00:00:00 CST 2018")String的Date轉(zhuǎn)為時(shí)間戳

? ? */

? ? public long toformatDate(String date){

? ? ? ? String str="";

? ? ? ? Date date1=new Date();

? ? ? ? try {

? ? ? ? ? ? DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);

? ? ? ? ? ? date1 = df.parse(date);

? ? ? ? ? ? System.err.println(date1.getTime()/1000);

? ? ? ? }catch (Exception e){

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? ? ? return date1.getTime()/1000;

? ? }

/**

* 測(cè)試

*/

public static void main(String[] args) {

? ? PageData condition = new PageData();

? ? setLastQuarterRange(condition);

? ? String startTime=String.valueOf(strToformatDate(condition.get("startTime").toString()));

? ? String stopTime=String.valueOf(strToformatDate(condition.get("stopTime").toString()));

? ? System.out.println(startTime+"--->"+stopTime);

}

/**

* 得到n天之后是周幾

* @param days

* @return

*/

public static String getAfterDayWeek(String days) {

? ? ? ? int daysInt = Integer.parseInt(days);

? ? ? ? Calendar canlendar = Calendar.getInstance(); // java.util包

? ? ? ? canlendar.add(Calendar.DATE, daysInt); // 日期減 如果不夠減會(huì)將月變動(dòng)

? ? ? ? Date date = canlendar.getTime();

? ? ? ? SimpleDateFormat sdf = new SimpleDateFormat("E");

? ? ? ? String dateStr = sdf.format(date);

? ? ? ? return dateStr;

}

/**

* 得到n天之后的當(dāng)前時(shí)間

* @param days

* @return

*/

public static String getAfterDayDate(String days) {

? ? ? ? int daysInt = Integer.parseInt(days);

? ? ? ? Calendar canlendar = Calendar.getInstance(); // java.util包

? ? ? ? canlendar.add(Calendar.DATE, daysInt); // 日期減 如果不夠減會(huì)將月變動(dòng)

? ? ? ? Date date = canlendar.getTime();

? ? ? ? SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

? ? ? ? String dateStr = sdfd.format(date);

? ? ? ? return dateStr;

}

/**

? * 得到幾分鐘后的時(shí)間

? * @param date minute(可為正負(fù))

? * @return

? */

public static Date getAfterTimeDate(Date date,int minute) {

? ? Calendar canlendar = Calendar.getInstance(); // java.util包

? ? canlendar.setTime(date);

? ? canlendar.add(Calendar.MINUTE, minute); // 日期減 如果不夠減會(huì)將月變動(dòng)

? ? return canlendar.getTime();

}

/**

? * 時(shí)間相減得到天數(shù)(開始時(shí)間和結(jié)束時(shí)間可任意大?。?/p>

? * @param beginDateStr(格式為"yyyy-MM-dd",也可為"yyyy-MM-dd hh:mm:ss")

? * @param endDateStr

? * @return? long

? */

? public static long getDaySub(String beginDateStr,String endDateStr){

? ? ? long day=0;

? ? ? SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

? ? ? //SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

? ? ? Date beginDate = null;

? ? ? Date endDate = null;

? ? ? try {

? ? ? ? beginDate = format.parse(beginDateStr);

? ? ? ? endDate= format.parse(endDateStr);

} catch (ParseException e) {

? ? ? ? e.printStackTrace();

}

? ? ? day=(endDate.getTime()-beginDate.getTime())/(24*60*60*1000);

? ? ? //System.out.println("相隔的天數(shù)="+day);

? ? ? return day;

? }

---------------------

作者:123~六兒

來(lái)源:CSDN

原文:https://blog.csdn.net/weixin_43052839/article/details/82015021

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先Activity的抽象類 BaseActivity [java]view plaincopy /** *Acti...
    Zaker2Magic閱讀 1,083評(píng)論 0 0
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,854評(píng)論 0 10
  • 找到fullcalendar.js, 找到代碼為 isRTL:false,這句話 輸入以下幾句 monthName...
    迷你小小白閱讀 1,859評(píng)論 0 1
  • 說(shuō)起呂布絕對(duì)是大名鼎鼎,不管是看過(guò)三國(guó)演義還是沒看過(guò)三國(guó)演義的幾乎都知道有這么一個(gè)武功天下第一但人格不怎么樣的名將...
    夕陽(yáng)褪去時(shí)閱讀 665評(píng)論 0 0
  • 最近看小說(shuō)總是有一堆不堪入目的廣告,于是決定爬下來(lái)放閱讀器里看吧。 一言不合上代碼 邏輯非常簡(jiǎn)單,主要就是去掉文章...
    岑先森閱讀 347評(píng)論 0 2

友情鏈接更多精彩內(nèi)容