1. 程式人生 > >Java date相關 格式化(二)

Java date相關 格式化(二)

天數 所在 fda 最後一天 ria int () ktr private

import java.util.Calendar;

import java.util.Date;
import java.util.GregorianCalendar;

public class ZCalendarUtils {

/**
* 取去年的今天
* @return
*/
public static String getLastYear() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, -1);
Date d = cal.getTime();
return DateTimeUtils.formatToDateTime(d);
}

/**
* 獲取某一天是星期幾
* @param dt
* @return
*/
public static String getWeekOfDate(Date dt) {
String[] weekDays = {"7", "1", "2", "3", "4", "5", "6"};
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0){
w = 0;
}
return weekDays[w];
}
/**
* 取當前是星期幾
* @return
*/
public static String getCurrentWeek() {
String day = getWeekOfDate(new Date());
return day;
}

/**
* 取當前月第一天
* @return
*/
public static String getFirstDayOfCurrentMonth() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
Date d = cal.getTime();
return DateTimeUtils.formatToDate(d);
}

/**
* 取昨天
* @return
*/
public static String getYesterday() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1);
Date d = cal.getTime();
return DateTimeUtils.formatToDate(d);
}

/**
* 取當前月最後一天
* @return
*/
public static String getLastDayOfCurrentMonth() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.DAY_OF_MONTH, -1);
Date d = cal.getTime();
return DateTimeUtils.formatToDate(d);
}
/**
* 取上月第一天
* @return
*/
public static String getFirstDayOfLastMonth() {
Calendar cal = Calendar.getInstance();
cal.add(cal.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date d = cal.getTime();
return DateTimeUtils.formatToDate(d);
}
/**
* 取上月最後一天
* @return
*/
public static String getLastDayOfLastMonth() {
Calendar cal = Calendar.getInstance();
//取得系統當前時間所在月第一天時間對象
cal.set(Calendar.DAY_OF_MONTH, 1);
//日期減一,取得上月最後一天時間對象
cal.add(Calendar.DAY_OF_MONTH, -1);
Date d = cal.getTime();
return DateTimeUtils.formatToDate(d);
}

/**
* 取當前是本月第幾周
* @return
*/
public static int getWeekNumber(){
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(new Date());
return calendar.get(Calendar.WEEK_OF_MONTH) - 1;
}
/**
* 取給定日期所在月份的第幾周
* @param newDate
* @param week
* @return
*/
public static Calendar getCalendar(Date newDate, int week) {
Calendar caleNew = Calendar.getInstance();
caleNew.setTime(newDate);
caleNew.add(Calendar.WEEK_OF_MONTH, week -1 );
return caleNew;
}
/**
* 獲上星期的第一天
*
* @return
*/
public static String getFirstDayOfLastWeek() {
int currentWeekNo = ZCalendarUtils.getWeekNumber();
Date date = ZCalendarUtils.getFirstDayOfWeek(new Date(), currentWeekNo -1);
return DateTimeUtils.formatToDate(date);
}
/**
* 獲取當前星期的第一天
*
* @return
*/
public static String getFirstDayOfCurrentWeek() {
int currentWeekNo = ZCalendarUtils.getWeekNumber();
Date date = ZCalendarUtils.getFirstDayOfWeek(new Date(), currentWeekNo);
return DateTimeUtils.formatToDate(date);
}
/**
* 獲取上星期的最後一天
*
* @return
*/
public static String getLastDayOfLastWeek() {
int currentWeekNo = ZCalendarUtils.getWeekNumber();
Date date = ZCalendarUtils.getLastDayOfWeek(new Date(), currentWeekNo -1);
return DateTimeUtils.formatToDate(date);
}
/**
* 獲取當前星期的最後一天
*
* @return
*/
public static String getLastDayOfCurrentWeek() {
int currentWeekNo = ZCalendarUtils.getWeekNumber();
Date date = ZCalendarUtils.getLastDayOfWeek(new Date(), currentWeekNo);
return DateTimeUtils.formatToDate(date);
}

/**
* 獲取給定日期所在月的第n星期的第一天
*
* @return
*/
private static Date getFirstDayOfWeek(Date month, int week) {
Calendar myCale = Calendar.getInstance();
try{
GregorianCalendar gc = (GregorianCalendar)getCalendar(month, week );
myCale.setTime(gc.getTime());
myCale.set(Calendar.DATE, gc.get(Calendar.DATE) - gc.get(Calendar.DAY_OF_WEEK) + 2);
}catch (Exception e) {
e.printStackTrace();
}
return myCale.getTime();
}

/**
* 獲取給定日期所在月的第n星期的最後一天
*
* @return
*/
private static Date getLastDayOfWeek(Date month, int week) {
Calendar myCale = Calendar.getInstance();
try{
GregorianCalendar gc = (GregorianCalendar)getCalendar(month, week);
myCale.setTime(gc.getTime());
myCale.set(Calendar.DATE, gc.get(Calendar.DATE) + 8 - gc.get(Calendar.DAY_OF_WEEK));
}catch (Exception e) {
e.printStackTrace();
}
return myCale.getTime();
}


public static int getYearOfDate(Date date) {
if (date == null) {
return 1990;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.YEAR);
}

public static int getMonthOfDate(Date date) {
if (date == null) {
return 1;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.MONTH) + 1;
}

public static int getDayOfDate(Date date) {
if (date == null) {
return 1;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.get(Calendar.DAY_OF_MONTH);
}

public static int getCurrentMonth() {
return getMonthOfDate(new Date());
}

public static String getCurrentMonthStr() {
return getCurrentMonth() + "";
}

public static String getMonthOfDateStr(Date date) {
return getMonthOfDate(date) + "";
}

/**
* 獲取某日期所在月份的最大天數
*
* @param date
* @return
*/
public static int getMaxDaysOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}

}

Java date相關 格式化(二)