Calander相關(guān)

package com.lish.taskchart.utils;import java.util.Calendar;import java.util.Date;

public class DateUtils {

? ?public static final String[] sWeekDay = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sta"};

? ? /**

? ? * 給定日期 返回星期的字符串

? ? */

? ? public static String getWeekDay(Date date) {

? ? ? ? int ofWeek = getIndexDayOfWeek(date);

? ? ? ? return sWeekDay[ofWeek - 1];

? ? }

? ? /**

? ? * 比當前日期增加一天

? ? */

? ? public static Date addOneDay(Date someDay) {

? ? ? ? return addSomeDay(someDay, 1);

? ? }

? ? /**

? ? * 比當前日期減少一天

? ? */

? ? public static Date subOneDay(Date someDay) {

? ? ? ? return addSomeDay(someDay, -1);

? ? }

? ? /**

? ? * 比當前多num天 num > 0,增加了幾天,num < 0 前幾天

? ? */

? ? public static Date addSomeDay(Date someDay, int num) {

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

? ? ? ? instance.setTime(someDay);

? ? ? ? instance.add(Calendar.DATE, num);

? ? ? ? return instance.getTime();

? ? }

? ? /**

? ? * 兩個日期的相差天數(shù) 含正負

? ? * antherDay 在之后 day 返回正值 否則 負值

? ? */

? ? public static int getDaysBetween(Date day, Date antherDay) {

? ? ? ? boolean symbol = day.after(antherDay);//默認 antherDay 在 day 后的某一天

? ? ? ? if (symbol) {//時間交換

? ? ? ? ? ? Date temp = day;

? ? ? ? ? ? day = antherDay;

? ? ? ? ? ? antherDay = temp;

? ? ? ? }

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

? ? ? ? calendar.setTime(day);

? ? ? ? Calendar d1 = (Calendar) calendar.clone();

? ? ? ? calendar.setTime(antherDay);

? ? ? ? int days = calendar.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);

? ? ? ? int year = calendar.get(Calendar.YEAR);

? ? ? ? if (d1.get(Calendar.YEAR) != year) {

? ? ? ? ? ? do {

? ? ? ? ? ? ? ? days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);

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

? ? ? ? ? ? } while (d1.get(Calendar.YEAR) != year);

? ? ? ? }

? ? ? ? return symbol ? -days : days;

? ? }

? ? /**

? ? * 返回當前日期是周幾

? ? * Calendar.SUNDAY = 1

? ? * Calendar.MONDAY = 2

? ? * Calendar.TUESDAY = 3

? ? * Calendar.WEDNESDAY = 4

? ? * Calendar.THURSDAY = 5

? ? * Calendar.FRIDAY = 6

? ? * Calendar.SATURDAY = 7

? ? */

? ? public static int getIndexDayOfWeek(Date date) {

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

? ? ? ? calendar.setTime(date);

? ? ? ? return calendar.get(Calendar.DAY_OF_WEEK);

? ? }

? ? /**

? ? * 這里轉(zhuǎn)換為 周一到周日

? ? */

? ? public static Date[] getWeekDates(Date date) {

? ? ? ? Date[] dates = new Date[7];

? ? ? ? int ofWeek = getIndexDayOfWeek(date);

? ? ? ? int sub = ofWeek - 2;//前面的天數(shù)

? ? ? ? if (sub < 0) {//今天是周日

? ? ? ? ? ? sub = 6;

? ? ? ? }

? ? ? ? for (int i = 0; i < 7; i++) {

? ? ? ? ? ? if (sub > 0) {

? ? ? ? ? ? ? ? dates[i] = addSomeDay(date, -sub);

? ? ? ? ? ? ? ? sub--;

? ? ? ? ? ? } else if (sub == 0) {

? ? ? ? ? ? ? ? dates[i] = date;

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? dates[i] = addSomeDay(date, i - ofWeek + 2);//i+2 是為了和 周幾同步 周二 為 3,此時 i = 1;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return dates;

? ? }

? ? /**

? ? * 返回給定日期月份的天數(shù)

? ? */

? ? public static int getTotalDayOfMonth(Date date) {

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

? ? ? ? calendar.setTime(date);

? ? ? ? return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

? ? }

? ? /**

? ? * 返回給定日期所在月份第一天的日期

? ? */

? ? public static Date getFirstDayOfMonth(Date date) {

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

? ? ? ? calendar.setTime(date);

? ? ? ? int minimum = calendar.getActualMinimum(Calendar.DAY_OF_MONTH);

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

? ? ? ? return calendar.getTime();

? ? }

? ? /**

? ? * 返回給定日期所在月份最后一天的日期

? ? */

? ? public static Date getLastDayOfMonth(Date date) {

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

? ? ? ? calendar.setTime(date);

? ? ? ? int maximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

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

? ? ? ? return calendar.getTime();

? ? }

}

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

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

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