日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Java中獲取前一天和后一天時間

系統 2218 0

今天在開發項目的時候遇到一個問題就是怎么獲取當前時間的前一天和后一天,這個實現的邏輯并不復雜,自己要寫的話的也不是難事,但是貌似感覺沒必要自己寫這樣的方法,想想Java中的Calendar類應該有這樣的方法,所以上網查了相關的資料,有兩個方法:分別是set和roll方法,這兩個方法的具體使用方法如下:

    package com.java.demo;

import java.util.Calendar;

public class DateUtil {
	
	public static void main(String[] args){
		//當前時間
		Calendar cl = setCalendar(2014,01,01);
		System.out.print("當前時間:");
		printCalendar(cl);
		//前一天
		cl = setCalendar(2014,01,01);
		getBeforeDay(cl);
		System.out.print("前一天:");
		printCalendar(cl);
		//后一天
		cl = setCalendar(2014,01,01);
		getAfterDay(cl);
		System.out.print("后一天:");
		printCalendar(cl);
	}
	
	/**
	 * 設置時間
	 * @param year
	 * @param month
	 * @param date
	 * @return
	 */
	public static Calendar setCalendar(int year,int month,int date){
		Calendar cl = Calendar.getInstance();
		cl.set(year, month-1, date);
		return cl;
	}
	
	/**
	 * 獲取當前時間的前一天時間
	 * @param cl
	 * @return
	 */
	private static Calendar getBeforeDay(Calendar cl){
		//使用roll方法進行向前回滾
		//cl.roll(Calendar.DATE, -1);
		//使用set方法直接進行設置
		int day = cl.get(Calendar.DATE);
		cl.set(Calendar.DATE, day-1);
		return cl;
	}
	
	/**
	 * 獲取當前時間的后一天時間
	 * @param cl
	 * @return
	 */
	private static Calendar getAfterDay(Calendar cl){
		//使用roll方法進行回滾到后一天的時間
		//cl.roll(Calendar.DATE, 1);
		//使用set方法直接設置時間值
		int day = cl.get(Calendar.DATE);
		cl.set(Calendar.DATE, day+1);
		return cl;
	}
	
	/**
	 * 打印時間
	 * @param cl
	 */
	public static void printCalendar(Calendar cl){
		int year = cl.get(Calendar.YEAR);
		int month = cl.get(Calendar.MONTH)+1;
		int day = cl.get(Calendar.DATE);
		System.out.println(year+"-"+month+"-"+day);
	}
	
}

  
上面的代碼就是說明了set方法和roll方法的使用,傳入一個Calendar,進行設置之后返回一個Calendar,但是roll和set有一個區別:為了測試出這兩個方法的卻別,我們將時間設置成一個邊界值:2014-01-01:看運行效果:

是通過set方法進行設置的時間的效果圖:

Java中獲取前一天和后一天時間

通過效果圖我們可以看到,set方法獲取前一天和后一天的時間是沒有任何問題的。下面再來看一下roll方法獲取前一天和后一天的時間的效果圖:

Java中獲取前一天和后一天時間

我們發現在獲取前一天的時間的時候出現問題了,就是2014-01-01獲取前一天是2014-01-31,由此我們可以看到,roll方法在獲取前一天和后一天的時候并不是級聯改動的,只會修改當前的day,而不會考慮year和month,當然他在修改day的時候是一個循環的修改,如:1月份是:1-31,就是一個循環。

通過上面的分析我們看到了set方法和roll方法的卻別了。

Java中獲取前一天和后一天時間


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 海淀区| 台江县| 凌源市| 探索| 安龙县| 望都县| 千阳县| 中阳县| 本溪| 靖安县| 南靖县| 乌拉特后旗| 平利县| 喀喇| 峡江县| 于田县| 松潘县| 安丘市| 通渭县| 巴彦淖尔市| 竹溪县| 视频| 阿拉善左旗| 黄梅县| 清水河县| 永修县| 商河县| 东莞市| 榕江县| 琼海市| 柞水县| 巴塘县| 洪江市| 井研县| 浦北县| 盐源县| 金门县| 长子县| 文化| 师宗县| 南靖县|