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

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

系統(tǒng) 2242 0

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

    package com.java.demo;

import java.util.Calendar;

public class DateUtil {
	
	public static void main(String[] args){
		//當(dāng)前時間
		Calendar cl = setCalendar(2014,01,01);
		System.out.print("當(dāng)前時間:");
		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);
	}
	
	/**
	 * 設(shè)置時間
	 * @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;
	}
	
	/**
	 * 獲取當(dāng)前時間的前一天時間
	 * @param cl
	 * @return
	 */
	private static Calendar getBeforeDay(Calendar cl){
		//使用roll方法進行向前回滾
		//cl.roll(Calendar.DATE, -1);
		//使用set方法直接進行設(shè)置
		int day = cl.get(Calendar.DATE);
		cl.set(Calendar.DATE, day-1);
		return cl;
	}
	
	/**
	 * 獲取當(dāng)前時間的后一天時間
	 * @param cl
	 * @return
	 */
	private static Calendar getAfterDay(Calendar cl){
		//使用roll方法進行回滾到后一天的時間
		//cl.roll(Calendar.DATE, 1);
		//使用set方法直接設(shè)置時間值
		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,進行設(shè)置之后返回一個Calendar,但是roll和set有一個區(qū)別:為了測試出這兩個方法的卻別,我們將時間設(shè)置成一個邊界值:2014-01-01:看運行效果:

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

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

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

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

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

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

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 台南县| 上饶市| 绵阳市| 嘉荫县| 枣阳市| 鹤峰县| 澜沧| 克拉玛依市| 博爱县| 平远县| 筠连县| 宁河县| 萍乡市| 潮州市| 永寿县| 达尔| 辉县市| 鹿泉市| 师宗县| 芦溪县| 安吉县| 宜丰县| 台中市| 乌兰浩特市| 伊通| 宝鸡市| 平昌县| 察哈| 天全县| 岑溪市| 黔西县| 玉树县| 大庆市| 方正县| 宁晋县| 西宁市| 葫芦岛市| 沈丘县| 嘉荫县| 江津市| 玉山县|