日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 日期计算类_java日期计算工具类【包含常用的日期计算方法】

發布時間:2025/3/19 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 日期计算类_java日期计算工具类【包含常用的日期计算方法】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

package com.test;

import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import com.util.CommonDateParseUtil;

/**

* @作者 王建明

* @創建日期 2012-12-27

* @創建時間 下午03:47:52

* @版本號 V 1.0

*/

public class DateTest {

public static void main(String[] args) {

// testGetDateStr();

//System.out.println(CommonDateParseUtil.date2string(

//firstDayOfWeek(new Date()), CommonDateParseUtil.YYYY_MM_DD));

//System.out.println(CommonDateParseUtil.date2string(

//lastDayOfWeek(new Date()), CommonDateParseUtil.YYYY_MM_DD));

System.out.println(lastDayOfMonth());

}

/**

*

* @作者 王建明

* @創建日期 2013-01-24

* @創建時間 08:36:08

* @描述 ——

*/

private static void testGetDateStr() {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

DateTest test = new DateTest();

// Date

Date currentDate = new Date();

System.out.println("當前日期是:" + df.format(currentDate));

System.out.println("一周后的日期是:" + df.format(test.nextWeek(currentDate)));

System.out.println("一月后的日期是:" + df.format(test.nextMonth(currentDate)));

System.out.println("一年后的日期是:" + df.format(test.nextYear(currentDate)));

// Timestamp

Timestamp currentTime = new Timestamp(System.currentTimeMillis());

System.out.println("當前日期是:" + df.format(currentTime));

System.out.println("一周后的日期是:" + df.format(test.nextWeek(currentTime)));

System.out.println("一月后的日期是:" + df.format(test.nextMonth(currentTime)));

System.out.println("一年后的日期是:" + df.format(test.nextYear(currentTime)));

// 另一種計算方式,這種方式計算月和年的日期比較困難

Timestamp nextTime = new Timestamp(currentTime.getTime() + 7 * 24 * 60

* 60 * 1000);

System.out.println("當前日期是:" + df.format(currentTime));

System.out.println("一周后的日期是:" + df.format(nextTime));

}

// 獲取下一周的日期

public static Date nextWeek(Date currentDate) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(currentDate);

cal.add(GregorianCalendar.DATE, 7);// 在日期上加7天

return cal.getTime();

}

// 獲取本周日的日期

public static Date getSunday(Date monday) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(monday);

cal.add(GregorianCalendar.DATE, 6);// 在日期上加6天

return cal.getTime();

}

// 獲取下一月的日期

public Date nextMonth(Date currentDate) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(currentDate);

cal.add(GregorianCalendar.MONTH, 1);// 在月份上加1

return cal.getTime();

}

// 獲取下一年的日期

public Date nextYear(Date currentDate) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(currentDate);

cal.add(GregorianCalendar.YEAR, 1);// 在年上加1

return cal.getTime();

}

/**

* @param date

* @return

* @作者 王建明

* @創建日期 2013-06-06

* @創建時間 10:47:36

* @描述 —— 獲取日期為該月的第幾周

*/

public static int getWeekInMonthNum(Date date) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(date);

int week = cal.get(Calendar.WEEK_OF_MONTH);// 獲取是本月的第幾周

return week;

}

/**

* @作者 王建明

* @創建日期 2013-01-24

* @創建時間 08:43:41

* @描述 —— 獲取當前日期的本周第一天

*/

public static Date firstDayOfWeek(Date date) {

int year = Integer.parseInt(CommonDateParseUtil.getNowYear());

int month = Integer.parseInt(CommonDateParseUtil.getNowMonth());

int day = Integer.parseInt(CommonDateParseUtil.getNowDay());

// 取本周第一天 最后一天

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.YEAR, year);

calendar.set(Calendar.MONTH, month - 1);

calendar.set(Calendar.DAY_OF_MONTH, day);

calendar.getTime();

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

return calendar.getTime();

}

/**

* @param date

* @return

* @作者 王建明

* @創建日期 2013-01-24

* @創建時間 08:48:03

* @描述 —— 獲取本周最后一天

*/

public static Date lastDayOfWeek(Date date) {

int year = Integer.parseInt(CommonDateParseUtil.getNowYear());

int month = Integer.parseInt(CommonDateParseUtil.getNowMonth());

int day = Integer.parseInt(CommonDateParseUtil.getNowDay());

// 取本周最后一天

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.YEAR, year);

calendar.set(Calendar.MONTH, month - 1);

calendar.set(Calendar.DAY_OF_MONTH, day);

calendar.getTime();

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

return getSunday(calendar.getTime());

}

/**

* @return

* @作者 王建明

* @創建日期 2013-01-24

* @創建時間 08:53:51

* @描述 —— 獲取本月第一天

*/

public static String firstDayOfMonth() {

Calendar cal = Calendar.getInstance();

SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd");

cal.set(Calendar.DATE, 1);

cal.roll(Calendar.DATE, -1);

// 當前月的第一天

cal.set(GregorianCalendar.DAY_OF_MONTH, 1);

Date beginTime = cal.getTime();

String beginTime1 = datef.format(beginTime) + " 00:00:00";

return beginTime1;

}

/**

* @return

* @作者 王建明

* @創建日期 2013-01-24

* @創建時間 08:54:06

* @描述 —— 獲取本月最后一天

*/

public static String lastDayOfMonth() {

Calendar cal = Calendar.getInstance();

SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd");

// 當前月的最后一天

cal.set(Calendar.DATE, 1);

cal.roll(Calendar.DATE, -1);

Date endTime = cal.getTime();

String endTime1 = datef.format(endTime) + " 23:59:59";

return endTime1;

}

/**

* @return

* @作者 王建明

* @創建日期 2013-05-22

* @創建時間 09:48:04

* @描述 —— 獲取當前星期數字

*/

public static int getNowWeekNum() {

int weekDay = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);

return weekDay == 1 ? 7 : weekDay - 1;

}

/**

* @param week——周幾數字【周一到周日分別對應1-7】

* @param time——時刻數字【例如:12代表12:00~12:59時間段】

* @return

* @作者 王建明

* @創建日期 2013-05-22

* @創建時間 16:09:29

* @描述 —— 根據星期和時刻獲取當前周的相應時間日期

*/

public static Date getNowWeekDate(int week, int time) {

int mondayPlus = getMondayPlus() + (week - 1);

GregorianCalendar currentDate = new GregorianCalendar();

currentDate.add(GregorianCalendar.DATE, mondayPlus);

Date date = currentDate.getTime();

String dateStr = CommonDateParseUtil.date2string(date,

CommonDateParseUtil.YYYY_MM_DD);

if (time < 10)

dateStr += (" 0" + time + ":00:00");

else

dateStr += (" " + time + ":00:00");

// return preMonday;

return CommonDateParseUtil.string2date(dateStr,

CommonDateParseUtil.YYYY_MM_DD_HH_MM_SS);

}

// 獲得當前日期與本周一相差的天數

private static int getMondayPlus() {

Calendar cd = Calendar.getInstance();

// 獲得今天是一周的第幾天,星期日是第一天,星期二是第二天......

int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);

if (dayOfWeek == 1) {

return -6;

} else {

return 2 - dayOfWeek;

}

}

/**

* @param currentDate

* @param num

* @return

* @作者 王建明

* @創建日期 2013-6-8

* @創建時間 下午2:44:24

* @描述 —— 獲取與指定日期距離num天的日期

*/

public static Date getDateFromSourceDate(Date currentDate, int num) {

GregorianCalendar cal = new GregorianCalendar();

cal.setTime(currentDate);

cal.add(GregorianCalendar.DATE, num);

return cal.getTime();

}

/**

* @param date1

* @param date2

* @return

* @作者 王建明

* @創建日期 2013-06-20

* @創建時間 14:08:37

* @描述 —— 計算兩個日期相隔多少天

*/

public static long differ(Date date1, Date date2) {

Long differLong = date2.getTime() / 86400000 - date1.getTime()

/ 86400000; // 用立即數,減少乘法計算的開銷

return Math.abs(differLong);

}

}

總結

以上是生活随笔為你收集整理的java 日期计算类_java日期计算工具类【包含常用的日期计算方法】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。