您的位置:首页 > 编程语言 > Java开发

JAVA日期相关的方法总结

2017-07-06 18:22 393 查看
package julit.framework.common.util;

import java.math.BigDecimal;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

public class DateUtil {

/**

* ORA标准时间格式

*/

private static final SimpleDateFormat ORA_DATE_TIME_FORMAT = new SimpleDateFormat(

“yyyyMMddHHmm”);

/**
* 带时分秒的ORA标准时间格式
*/
private static final SimpleDateFormat ORA_DATE_TIME_EXTENDED_FORMAT = new SimpleDateFormat(
"yyyyMMddHHmmss");

/**
* 带时分秒的ORA标准时间格式
*/
private static final SimpleDateFormat ORA_DATE_FORMAT = new SimpleDateFormat( "yyyy-MM-dd");
private static final SimpleDateFormat ORA_DATE_FORMAT_MD = new SimpleDateFormat( "MM月dd号");
private static final SimpleDateFormat ORA_DATE_FORMAT_ = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

private static final SimpleDateFormat ORA_DATE_FORMAT2 = new SimpleDateFormat(
"yyyy/MM/dd");
private static final SimpleDateFormat ORA_DATE_FORMAT_2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
/**
* 创建一个标准ORA时间格式的克隆
*
* @return 标准ORA时间格式的克隆
*/
private static synchronized DateFormat getOraDateTimeFormat() {
SimpleDateFormat theDateTimeFormat = (SimpleDateFormat) ORA_DATE_TIME_FORMAT
.clone();
theDateTimeFormat.setLenient(false);
return theDateTimeFormat;
}

public static String toOnlyDateFormat(Date d){
try{
return ORA_DATE_FORMAT.format(d);
}catch(Exception ex){
return "";
}
}
public static String toOnlyDateFormatMd(Date d){
try{
return ORA_DATE_FORMAT_MD.format(d);
}catch(Exception ex){
return "";
}
}

public static String toOnlyDateFormat_(Date d){
try{
return ORA_DATE_FORMAT_.format(d);
}catch(Exception ex){
return "";
}
}

public static String toOnlyDateFormat2(Date d){
try{
return ORA_DATE_FORMAT2.format(d);
}catch(Exception ex){
return "";
}
}
public static String toOnlyDateFormat_2(Date d){
try{
return ORA_DATE_FORMAT_2.format(d);
}catch(Exception ex){
return "";
}
}

/**
* 创建一个带分秒的ORA时间格式的克隆
*
* @return 标准ORA时间格式的克隆
*/
private static synchronized DateFormat getOraExtendDateTimeFormat() {
SimpleDateFormat theDateTimeFormat = (SimpleDateFormat) ORA_DATE_TIME_EXTENDED_FORMAT
.clone();
theDateTimeFormat.setLenient(false);
return theDateTimeFormat;
}

public static String getSystemCurrentYear(){
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
return String.valueOf(c.get(Calendar.YEAR));
}

public static String getSystemCurrentMonth(){
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
return String.valueOf(c.get(Calendar.MONTH)+1);
}

public static String getSystemCurrentDay(){
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
return String.valueOf(c.get(Calendar.DAY_OF_MONTH));
}

public static String getSystemCurrentYearLast2Bits(){
String year = getSystemCurrentYear();
return year.length()>2?year.substring(year.length()-2):year;
}

/**
* 得到系统当前的日期 格式为YYYY-MM-DD
*
* @return
*/
public static String getSystemCurrentDate() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
return doTransform(calendar.get(Calendar.YEAR), calendar
.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH));
}

/**
* 得到下个月这个时候的系统的日期 格式为YYYY-MM-DD(当现在月份为12月时,此时这里的月份为13)
*
* @return
*/
public static String getSystemCurrentDate_NextMonth() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
return doTransform(calendar.get(Calendar.YEAR), calendar
.get(Calendar.MONTH) + 2, calendar.get(Calendar.DAY_OF_MONTH));
}

/**
* 返回格式为YYYY-MM-DD
*
* @param year
*            年
* @param month
*            月
* @param day
*            日
* @return
*/
private static String doTransform(int year, int month, int day) {
StringBuffer result = new StringBuffer();
result.append(String.valueOf(year)).append("-").append(
month < 10 ? "0" + String.valueOf(month) : String
.valueOf(month)).append("-").append(
day < 10 ? "0" + String.valueOf(day) : String.valueOf(day));
return result.toString();
}

/**
* 得到系统当前的日期和时间 格式为YYYY-MM-DD hh:mm:ss
*
* @return
*/
public static final String getSystemCurrentDateTime() {
Calendar newCalendar = Calendar.getInstance();
newCalendar.setTimeInMillis(System.currentTimeMillis());
int year = newCalendar.get(Calendar.YEAR);
int month = newCalendar.get(Calendar.MONTH) + 1;
int day = newCalendar.get(Calendar.DAY_OF_MONTH);
int hour = newCalendar.get(Calendar.HOUR_OF_DAY);
int minute = newCalendar.get(Calendar.MINUTE);
int second = newCalendar.get(Calendar.SECOND);
return doTransform(year, month, day, hour, minute, second);
}

/**
* 得到系统当前的时间 格式为hh:mm:ss
* @return
*/
public static final String getSystemCurrentTime() {
return getSystemCurrentDateTime().substring(11, 19);
}

/**
* 返回格式为YYYY-MM-DD hh:mm:ss
*
* @param year
*            年
* @param month
*            月
* @param day
*            日
* @param hour
*            小时
* @param minute
*            分钟
* @param second
*            秒
* @return
*/
private static final String doTransform(int year, int month, int day,
int hour, int minute, int second) {
StringBuffer result = new StringBuffer();
result.append(String.valueOf(year)).append("-")
.append(month < 10 ? "0" + String.valueOf(month) : String.valueOf(month)).append("-")
.append(day < 10 ? "0" + String.valueOf(day) : String.valueOf(day)).append(" ")
.append(hour < 10 ? "0" + String.valueOf(hour) : String.valueOf(hour)).append(":")
.append(minute < 10 ? "0" + String.valueOf(minute) : String.valueOf(minute)).append(":")
.append(second < 10 ? "0" + String.valueOf(second) : String.valueOf(second));
return result.toString();
}

/**
* 获得昨天的日期
*
* @return 指定日期的下一天 格式:YYYY-MM-DD
*/
public static synchronized String getDayBeforeToday() {
Date date = new Date(System.currentTimeMillis());
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.add(Calendar.DATE, -1);
return doTransform(toString(gc.getTime(),getOraDateTimeFormat()));
}

/**
* 获得明天的日期
*
* @return 指定日期的下一天 格式:YYYY-MM-DD
*/
public static synchronized String getDayAfterToday() {
Date date = new Date(System.currentTimeMillis());
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.add(Calendar.DATE, 1);
return doTransform(toString(gc.getTime(),getOraExtendDateTimeFormat())).substring(0,10);
}
/**
* 获得明天的日期
*
* @return 指定日期的下一天 格式:YYYY-MM-DD
*/
public static synchronized String getNextDay(String date) {
Date date1 = toSimpleDate(date);
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date1);
gc.add(Calendar.DATE, 1);
return doTransform(toString(gc.getTime(),getOraExtendDateTimeFormat())).substring(0,10);
}

/**
* 获得以后几个月的日期
*
* @return 指定日期的后面几个月 格式:YYYY-MM-DD
*/
public static synchronized Date getDayAfterMonth(int months){
Date date = new Date(System.currentTimeMillis());
GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
gc.setTime(date);
gc.add(Calendar.MONTH, months);
return gc.getTime();
}

/**
* 返回格式为YYYY-MM-DD hh:mm:ss
* @param date 输入格式为ORA标准时间格式
* @return
*/
public static String doTransform(String date){
StringBuffer buffer = new StringBuffer();
buffer.append(date.substring(0,4));
buffer.append("-");
buffer.append(date.substring(4,6));
buffer.append("-");
buffer.append(date.substring(6,8));
buffer.append(" ");
buffer.append(date.substring(8,10));
buffer.append(":");
buffer.append(date.substring(10,12));
buffer.append(":");
buffer.append(date.substring(12,14));

return buffer.toString();
}

/**
* 将一个日
4000
期对象转换成为指定日期、时间格式的字符串。 如果日期对象为空,返回一个空字符串对象.
*
* @param theDate
*            要转换的日期对象
* @param theDateFormat
*            返回的日期字符串的格式
* @return 转换结果
*/
public static synchronized String toString(Date theDate,
DateFormat theDateFormat) {
if (theDate == null) {
return "";
} else {
return theDateFormat.format(theDate);
}
}

/**
* 将Date类型转换后返回本系统默认的日期格式 YYYY-MM-DD hh:mm:ss
* @param theDate
* @return
*/
public static synchronized String toDefaultString(Date theDate){
if(theDate == null){
return "";
}
return  doTransform(toString(theDate,getOraExtendDateTimeFormat()));
}

/**
* 将输入格式为2004-8-13 12:31:22类型的字符串转换为标准的Date类型
* @param dateStr
* @return
*/
public static synchronized Date toDate(String dateStr){
String[] list0 = dateStr.split(" ");
String date = list0[0];
String time = list0[1];
String[] list1 = date.split("-");
int year = new Integer(list1[0]).intValue();
int month = new Integer(list1[1]).intValue();
int day = new Integer(list1[2]).intValue();
String[] list2 = time.split(":");
int hour = new Integer(list2[0]).intValue();
int min = new Integer(list2[1]).intValue();
int second = new Integer(list2[2]).intValue();
Calendar cale =  Calendar.getInstance();
cale.set(year,month-1,day,hour,min,second);
return cale.getTime();
}

/**
* 将输入格式为2004-8-13类型的字符串转换为标准的Date类型
* @param dateStr
* @return
*/
public static synchronized Date toSimpleDate(String dateStr){
try{
String[] list = dateStr.split("-");
int year = new Integer(list[0]).intValue();
int month = new Integer(list[1]).intValue();
int day = new Integer(list[2]).intValue();
Calendar cale =  Calendar.getInstance();
cale.set(year,month-1,day,0,0,0);
return cale.getTime();
}catch(Exception ex){
return null;
}
}

public static synchronized Date toSimpleDate(String year, String month, String date){
try{
String str = year + "-" +
Converter.padding(month, 2, '0', true) + "-" +
Converter.padding(date, 2, '0', true);
return toSimpleDate(str);
}catch(Exception ex){
return null;
}
}

/**
* 将输入格式为2004-8-13,2004-10-8类型的字符串转换为标准的Date类型,这种Date类型
* 对应的日期格式为YYYY-MM-DD 00:00:00,代表一天的开始时刻
* @param dateStr
* @return
*/
public static synchronized Date toDayStartDate(String dateStr){
String[] list = dateStr.split("-");
int year = new Integer(list[0]).intValue();
int month = new Integer(list[1]).intValue();
int day = new Integer(list[2]).intValue();
Calendar cale =  Calendar.getInstance();
cale.set(year,month-1,day,0,0,0);
return cale.getTime();

}

/**
* 将输入格式为2004-8-13,2004-10-8类型的字符串转换为标准的Date类型,这种Date类型
* 对应的日期格式为YYYY-MM-DD 23:59:59,代表一天的结束时刻
* @param dateStr 输入格式:2004-8-13,2004-10-8
* @return
*/
public static synchronized Date toDayEndDate(String dateStr){
String[] list = dateStr.split("-");
int year = new Integer(list[0]).intValue();
int month = new Integer(list[1]).intValue();
int day = new Integer(list[2]).intValue();
Calendar cale =  Calendar.getInstance();
cale.set(year,month-1,day,23,59,59);
return cale.getTime();

}


public static synchronized String compareTwoDate(Date date1,Date date2){

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

//GregorianCalendar c1 = new GregorianCalendar(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));

Calendar calendar1 = Calendar.getInstance();

calendar1.setTime(date2);

//GregorianCalendar c2 = new GregorianCalendar(calendar1.get(Calendar.YEAR),calendar1.get(Calendar.MONTH),calendar1.get(Calendar.DAY_OF_MONTH),calendar1.get(Calendar.HOUR),calendar1.get(Calendar.MINUTE),calendar1.get(Calendar.SECOND));
double timeLong = calendar1.getTimeInMillis()- calendar.getTimeInMillis();
//double timeLong=c2.getTimeInMillis()-c1.getTimeInMillis();
int hourNum=(int)(timeLong/1000/3600);
int minuteNum = (int)((timeLong%(1000*3600))/1000/60);
int secondNum = (int)(((timeLong%(1000*3600))%(1000*60))/1000);
String hourStr="";
if(hourNum<10){
hourStr="0"+new Integer(hourNum).toString();
}else{
hourStr= new Integer(hourNum).toString();
}
String minuteStr="";
if(minuteNum<10){
minuteStr="0"+new Integer(minuteNum).toString();
}else{
minuteStr=new Integer(minuteNum).toString();
}
String secondStr="";
if(secondNum<10){
secondStr="0"+new Integer(secondNum).toString();
}else{
secondStr=new Integer(secondNum).toString();
}
String time = hourStr+":"+minuteStr+":"+secondStr;
return time;


}

public static synchronized double compareDate(Date date1,Date date2){

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

//GregorianCalendar c1 = new GregorianCalendar(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));

Calendar calendar1 = Calendar.getInstance();

calendar1.setTime(date2);

//GregorianCalendar c2 = new GregorianCalendar(calendar1.get(Calendar.YEAR),calendar1.get(Calendar.MONTH),calendar1.get(Calendar.DAY_OF_MONTH),calendar1.get(Calendar.HOUR),calendar1.get(Calendar.MINUTE),calendar1.get(Calendar.SECOND));

//double timeLong=c2.getTimeInMillis()-c1.getTimeInMillis();

double timeLong = calendar1.getTimeInMillis()- calendar.getTimeInMillis();

return timeLong;

}

/**

* 两个日期date1与date2比较,得到(date2-date1)的小时差

* @param date1

* @param date2

* @return

*/

public static synchronized int getTwoDateHours(Date date1,Date date2){

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

//GregorianCalendar c1 = new GregorianCalendar(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));

Calendar calendar1 = Calendar.getInstance();

calendar1.setTime(date2);

//GregorianCalendar c2 = new GregorianCalendar(calendar1.get(Calendar.YEAR),calendar1.get(Calendar.MONTH),calendar1.get(Calendar.DAY_OF_MONTH),calendar1.get(Calendar.HOUR),calendar1.get(Calendar.MINUTE),calendar1.get(Calendar.SECOND));

//double timeLong=c2.getTimeInMillis()-c1.getTimeInMillis();

double timeLong = calendar1.getTimeInMillis()- calendar.getTimeInMillis();

return new Double(timeLong/1000/3600).intValue();

}

/**

* 两个日期date1与date2比较,得到(date2-date1)的日期差

* @param date1

* @param date2

* @return

*/

public static synchronized int getTwoDateDays(Date date1,Date date2){

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

//GregorianCalendar c1 = new GregorianCalendar(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));

Calendar calendar1 = Calendar.getInstance();

calendar1.setTime(date2);

//GregorianCalendar c2 = new GregorianCalendar(calendar1.get(Calendar.YEAR),calendar1.get(Calendar.MONTH),calendar1.get(Calendar.DAY_OF_MONTH),calendar1.get(Calendar.HOUR),calendar1.get(Calendar.MINUTE),calendar1.get(Calendar.SECOND));

//double timeLong=c2.getTimeInMillis()-c1.getTimeInMillis();

double timeLong = calendar1.getTimeInMillis()- calendar.getTimeInMillis();

//2013.12.09yang这里将两个日期比较的值四舍五入一下,不然两个值

String numStr = String.valueOf(new BigDecimal(String.valueOf(timeLong/1000/3600/24)).setScale(0, BigDecimal.ROUND_HALF_UP));

//System.out.println(numStr);

return new Integer(numStr).intValue();

}

/**

* 将两个scorm时间相加

* @param scormTime1 scorm时间,格式为00:00:00(1..2).0(1..3)

* @param scormTime2 scorm时间,格式为00:00:00(1..2).0(1..3)

* @return

*/

public static synchronized String addTwoScormTime(String scormTime1,String scormTime2){

int dotIndex1 = scormTime1.indexOf(“.”);

int hh1 = Integer.parseInt(scormTime1.substring(0,2));

int mm1 = Integer.parseInt(scormTime1.substring(3,5));

int ss1 = Integer.parseInt(scormTime1.substring(6,dotIndex1));

int ms1 = Integer.parseInt(scormTime1.substring(dotIndex1 + 1,scormTime1.length()));

int dotIndex2 = scormTime2.indexOf(".");
int hh2 = Integer.parseInt(scormTime2.substring(0,2));
int mm2 = Integer.parseInt(scormTime2.substring(3,5));
int ss2 = Integer.parseInt(scormTime2.substring(6,dotIndex2));
int ms2 = Integer.parseInt(scormTime2.substring(dotIndex1 + 1,scormTime2.length()));

int hh = 0;
int mm = 0;
int ss = 0;
int ms = 0;

if(ms1+ms2 >= 1000){
ss = 1;
ms = ms1+ms2-1000;
}else{
ms = ms1+ms2;
}
if(ss1+ss2+ss >= 60){
mm = 1;
ss = ss1+ss2+ss-60;
}else{
ss = ss1+ss2+ss;
}
if(mm1+mm2+mm>=60){
hh = 1;
hh = mm1+mm2+mm-60;
}
hh = hh + hh1 + hh2;

StringBuffer sb = new StringBuffer();
if(hh<10){
sb.append("0").append(hh);
}else{
sb.append(hh);
}
sb.append(":");
if(mm<10){
sb.append("0").append(mm);
}else{
sb.append(mm);
}
sb.append(":");
if(ss<10){
sb.append("0").append(ss);
}else{
sb.append(ss);
}
sb.append(".");
if(ms<10){
sb.append(ms).append("00");
}else if(ms<100){
sb.append(ms).append("0");
}else{
sb.append(ms);
}
return sb.toString();
}

/**
* 根据timeType返回当前日期与传入日期的差值(当前日期减传入日期)
* 当要求返回月份的时候,date的日期必须和当前的日期相等,
* 否则返回0(例如:2003-2-23 和 2004-6-12由于23号和12号不是同一天,固返回0,
*          2003-2-23 和 2005-6-23 则需计算相差的月份,包括年,此例应返回28(个月)。
*          2003-2-23 和 2001-6-23 也需计算相差的月份,包括年,此例应返回-20(个月))
*
* @param date 要与当前日期比较的日期
* @param timeType 0代表返回两个日期相差月数,1代表返回两个日期相差天数
*
* @return 根据timeType返回当前日期与传入日期的差值
*/
public static int CompareDateWithNow(Date date,int timeType){
Date now = Calendar.getInstance().getTime();

Calendar calendarNow=Calendar.getInstance();
calendarNow.setTime(now);
calendarNow.set(Calendar.HOUR,0);
calendarNow.set(Calendar.MINUTE,0);
calendarNow.set(Calendar.SECOND,0);
//System.out.println("calendarNow "+calendarNow.getTime());

Calendar calendarPara=Calendar.getInstance();
calendarPara.setTime(date);
calendarPara.set(Calendar.HOUR,0);
calendarPara.set(Calendar.MINUTE,0);
calendarPara.set(Calendar.SECOND,0);
//System.out.println("calendarPara "+calendarPara.getTime());

float nowTime=now.getTime();
float dateTime=date.getTime();

if(timeType==0){
if(calendarNow.get(Calendar.DAY_OF_YEAR)==calendarPara.get(Calendar.DAY_OF_YEAR))
return 0;
return (calendarNow.get(Calendar.YEAR)-calendarPara.get(Calendar.YEAR))*12+calendarNow.get(Calendar.MONTH)-calendarPara.get(Calendar.MONTH);
}
else{
float result=nowTime-dateTime;
float day=24*60*60*1000;
//System.out.println("day "+day);
result=(result>0)?result:-result;
//System.out.println(result);
result=result/day;
Float resultFloat=new Float(result);
float fraction=result-resultFloat.intValue();
if(fraction>0.5){
return resultFloat.intValue()+1;
}else{
return resultFloat.intValue();
}
}
}

public static boolean isSameDate(Date d1, Date d2){
if(d1==null || d2==null)return false;
return d1.getYear()==d2.getYear() &&
d1.getMonth()==d2.getMonth() &&
d1.getDate()==d2.getDate();
}

public static boolean lessOrEqual(Date d1, Date d2){
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
Calendar c2 = Calendar.getInstance();
c2.setTime(d2);
if( c1.before(c2)){
return true;
}else{
return isSameDate(d1, d2);
}
}

public static boolean less(Date d1, Date d2){
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
Calendar c2 = Calendar.getInstance();
c2.setTime(d2);
if( c1.before(c2)){
return true;
}else{
return false;
}
}

public static String addDate(String date, int cnt){
Calendar c = Calendar.getInstance();
c.setTime(DateUtil.toSimpleDate(date));
c.add(Calendar.DATE, cnt);
return DateUtil.toOnlyDateFormat(c.getTime());
}

public static String getYear(Date d){
return d==null?"":String.valueOf(1900+d.getYear());
}

public static String getMonth(Date d){
return d==null?"":String.valueOf(d.getMonth()+1);
}

public static String getDate(Date d){
return d==null?"":String.valueOf(d.getDate());
}

public static String getYear(String d){
return getYear(DateUtil.toSimpleDate(d));
}

public static String getMonth(String d){
return getMonth(DateUtil.toSimpleDate(d));
}

public static String getDate(String d){
return getDate(DateUtil.toSimpleDate(d));
}

public static int getDayCountInMonth(Date d){
if(d==null)return 0;
Calendar c = Calendar.getInstance();
c.setTime(d);
return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}

//  比较两个日期字符串的相差天数,如:2009-07-01与2009-07-10 或 2009/07/01与2009/07/10
public static int compareDateStr(String date1, String date2){
if(date1.indexOf("/")!=-1){
date1 = date1.replaceAll("/","-");
}
if(date2.indexOf("/")!=-1){
date2 = date2.replaceAll("/","-");
}
return getTwoDateDays(toSimpleDate(date2),toSimpleDate(date1));
}

/**
* 给定一个普通日期,返回当月最后一天
* @param monthdate
* @return
*/
public static String getMonthLastDate(String monthdate){
String curmonth = monthdate.substring(5,7);
String today = monthdate;
while(true){
String nextday = DateUtil.addDate(today,1);
if(!nextday.substring(5,7).equals(curmonth)){
return today;
}
today = nextday;
}
}

/**
* 获得下一个月
* @param yyyyMM
* @return
*/
public static String getNextMonthStr(String yyyyMM){
int firsty = Integer.parseInt(yyyyMM.substring(0, 4));
int firstm = Integer.parseInt(yyyyMM.substring(4));
if(firstm==12){
firstm=1;
firsty++;
}else{
firstm++;
}
return String.valueOf(firsty) + Converter.padding(String.valueOf(firstm),2,'0',true);
}

public static String getWeekStr(Date date1){
String [] strs = {"周日","周一","周二","周三","周四","周五","周六"};
Calendar c1 = Calendar.getInstance();
c1.setTime(date1);
int w = c1.get(Calendar.DAY_OF_WEEK);
//System.out.println("www="+w);
return
a0f0
strs[w-1];
}

/**
* 获得一个月所需要的天数
*/
public static String[] getDays(int year,int month){
String days[]=new String[42];
for(int i=0;i<42;i++)
{
days[i]="";
}
Calendar thisMonth=Calendar.getInstance();
thisMonth.set(Calendar.MONTH,month-1);
thisMonth.set(Calendar.YEAR,year);
String years=String.valueOf(thisMonth.get(Calendar.YEAR));
String months=String.valueOf(thisMonth.get(Calendar.MONTH));
thisMonth.setFirstDayOfWeek(Calendar.SUNDAY);
thisMonth.set(Calendar.DAY_OF_MONTH,1);
int firstIndex=thisMonth.get(Calendar.DAY_OF_WEEK)-1;
int maxIndex=thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH);
for(int i=0;i<maxIndex;i++)
{
days[firstIndex+i]=String.valueOf(i+1);
}
return days;
}
/**
* 获取当前月份
*/
public static String getMMDD(String YYYYMMDD){
String  MM = YYYYMMDD.substring(5, 7);
String  DD = YYYYMMDD.substring(8);
return MM+DD;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java