通用日期处理函数,日期处理大全
package com.elink.util;
import java.text.*;
import java.util.*;
public class dateutil
{
private static final int[] dayarray = new int[]
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
private static simpledateformat sdf = new simpledateformat();
public static synchronized calendar getcalendar()
{
return gregoriancalendar.getinstance();
}
/**
@return string
*/
public static synchronized string getdatemilliformat()
{
calendar cal = calendar.getinstance();
return getdatemilliformat( cal );
}
/**
@param cal
@return string
*/
public static synchronized string getdatemilliformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd hh:mm:ss,sss";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdatemilliformat( java.util.date date )
{
string pattern = "yyyy-mm-dd hh:mm:ss,sss";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendarmilliformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss,sss";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedatemilliformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss,sss";
return parsedateformat( strdate, pattern );
}
/**
@return string
*/
public static synchronized string getdatesecondformat()
{
calendar cal = calendar.getinstance();
return getdatesecondformat( cal );
}
/**
@param cal
@return string
*/
public static synchronized string getdatesecondformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdatesecondformat( java.util.date date )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendarsecondformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedatesecondformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return parsedateformat( strdate, pattern );
}
/**
@return string
*/
public static synchronized string getdateminuteformat()
{
calendar cal = calendar.getinstance();
return getdateminuteformat( cal );
}
/**
@param cal
@return string
*/
public static synchronized string getdateminuteformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd hh:mm";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdateminuteformat( java.util.date date )
{
string pattern = "yyyy-mm-dd hh:mm";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendarminuteformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedateminuteformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm";
return parsedateformat( strdate, pattern );
}
/**
@return string
*/
public static synchronized string getdatedayformat()
{
calendar cal = calendar.getinstance();
return getdatedayformat( cal );
}
/**
@param cal
@return string
*/
public static synchronized string getdatedayformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdatedayformat( java.util.date date )
{
string pattern = "yyyy-mm-dd";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendardayformat( string strdate )
{
string pattern = "yyyy-mm-dd";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedatedayformat( string strdate )
{
string pattern = "yyyy-mm-dd";
return parsedateformat( strdate, pattern );
}
/**
@return string
*/
public static synchronized string getdatefileformat()
{
calendar cal = calendar.getinstance();
return getdatefileformat( cal );
}
/**
@param cal
@return string
*/
public static synchronized string getdatefileformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd_hh-mm-ss";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdatefileformat( java.util.date date )
{
string pattern = "yyyy-mm-dd_hh-mm-ss";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendarfileformat( string strdate )
{
string pattern = "yyyy-mm-dd_hh-mm-ss";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedatefileformat( string strdate )
{
string pattern = "yyyy-mm-dd_hh-mm-ss";
return parsedateformat( strdate, pattern );
}
/**
@return string
*/
public static synchronized string getdatew3cformat()
{
calendar cal = calendar.getinstance();
return getdatew3cformat( cal );
}
/**
@param cal
@return string
*/
public static synchronized string getdatew3cformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdatew3cformat( java.util.date date )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendarw3cformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedatew3cformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return parsedateformat( strdate, pattern );
}
/**
@param cal
@return string
*/
public static synchronized string getdateformat( java.util.calendar cal )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return getdateformat( cal, pattern );
}
/**
@param date
@return string
*/
public static synchronized string getdateformat( java.util.date date )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return getdateformat( date, pattern );
}
/**
@param strdate
@return java.util.calendar
*/
public static synchronized calendar parsecalendarformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return parsecalendarformat( strdate, pattern );
}
/**
@param strdate
@return java.util.date
*/
public static synchronized date parsedateformat( string strdate )
{
string pattern = "yyyy-mm-dd hh:mm:ss";
return parsedateformat( strdate, pattern );
}
/**
@param cal
@param pattern
@return string
*/
public static synchronized string getdateformat( java.util.calendar cal, string pattern )
{
return getdateformat( cal.gettime(), pattern );
}
/**
@param date
@param pattern
@return string
*/
public static synchronized string getdateformat( java.util.date date, string pattern )
{
synchronized ( sdf )
{
string str = null;
sdf.applypattern( pattern );
str = sdf.format( date );
return str;
}
}
/**
@param strdate
@param pattern
@return java.util.calendar
*/
public static synchronized calendar parsecalendarformat( string strdate, string pattern )
{
synchronized ( sdf )
{
calendar cal = null;
sdf.applypattern( pattern );
try
{
sdf.parse( strdate );
cal = sdf.getcalendar();
}
catch ( exception e )
{
}
return cal;
}
}
/**
@param strdate
@param pattern
@return java.util.date
*/
public static synchronized date parsedateformat( string strdate, string pattern )
{
synchronized ( sdf )
{
date date = null;
sdf.applypattern( pattern );
try
{
date = sdf.parse( strdate );
}
catch ( exception e )
{
}
return date;
}
}
public static synchronized int getlastdayofmonth( int month )
{
if ( month < 1 || month > 12 )
{
return -1;
}
int retn = 0;
if ( month == 2 )
{
if ( isleapyear() )
{
retn = 29;
}
else
{
retn = dayarray[month - 1];
}
}
else
{
retn = dayarray[month - 1];
}
return retn;
}
public static synchronized int getlastdayofmonth( int year, int month )
{
if ( month < 1 || month > 12 )
{
return -1;
}
int retn = 0;
if ( month == 2 )
{
if ( isleapyear( year ) )
{
retn = 29;
}
else
{
retn = dayarray[month - 1];
}
}
else
{
retn = dayarray[month - 1];
}
return retn;
}
public static synchronized boolean isleapyear()
{
calendar cal = calendar.getinstance();
int year = cal.get( calendar.year );
return isleapyear( year );
}
public static synchronized boolean isleapyear( int year )
{
/**
* 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
* 3.能被4整除同时能被100整除则不是闰年
*/
if ( ( year % 400 ) == 0 )
return true;
else if ( ( year % 4 ) == 0 )
{
if ( ( year % 100 ) == 0 )
return false;
else return true;
}
else return false;
}
/**
* 判断指定日期的年份是否是闰年
*
* @param date
* 指定日期。
* @return 是否闰年
*/
public static synchronized boolean isleapyear( java.util.date date )
{
/**
* 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
* 3.能被4整除同时能被100整除则不是闰年
*/
// int year = date.getyear();
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
int year = gc.get( calendar.year );
return isleapyear( year );
}
public static synchronized boolean isleapyear( java.util.calendar gc )
{
/**
* 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
* 3.能被4整除同时能被100整除则不是闰年
*/
int year = gc.get( calendar.year );
return isleapyear( year );
}
/**
* 得到指定日期的前一个工作日
*
* @param date
* 指定日期。
* @return 指定日期的前一个工作日
*/
public static synchronized java.util.date getpreviousweekday(
java.util.date date )
{
{
/**
* 详细设计:
* 1.如果date是星期日,则减3天
* 2.如果date是星期六,则减2天
* 3.否则减1天
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
return getpreviousweekday( gc );
// switch ( gc.get( calendar.day_of_week ) )
// {
// case ( calendar.monday ):
// gc.add( calendar.date, -3 );
// break;
// case ( calendar.sunday ):
// gc.add( calendar.date, -2 );
// break;
// default:
// gc.add( calendar.date, -1 );
// break;
// }
// return gc.gettime();
}
}
public static synchronized java.util.date getpreviousweekday(
java.util.calendar gc )
{
{
/**
* 详细设计:
* 1.如果date是星期日,则减3天
* 2.如果date是星期六,则减2天
* 3.否则减1天
*/
switch ( gc.get( calendar.day_of_week ) )
{
case ( calendar.monday ):
gc.add( calendar.date, -3 );
break;
case ( calendar.sunday ):
gc.add( calendar.date, -2 );
break;
default:
gc.add( calendar.date, -1 );
break;
}
return gc.gettime();
}
}
/**
* 得到指定日期的后一个工作日
*
* @param date
* 指定日期。
* @return 指定日期的后一个工作日
*/
public static synchronized java.util.date getnextweekday(
java.util.date date )
{
/**
* 详细设计:
* 1.如果date是星期五,则加3天
* 2.如果date是星期六,则加2天
* 3.否则加1天
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
switch ( gc.get( calendar.day_of_week ) )
{
case ( calendar.friday ):
gc.add( calendar.date, 3 );
break;
case ( calendar.saturday ):
gc.add( calendar.date, 2 );
break;
default:
gc.add( calendar.date, 1 );
break;
}
return gc.gettime();
}
public static synchronized java.util.calendar getnextweekday(
java.util.calendar gc )
{
/**
* 详细设计:
* 1.如果date是星期五,则加3天
* 2.如果date是星期六,则加2天
* 3.否则加1天
*/
switch ( gc.get( calendar.day_of_week ) )
{
case ( calendar.friday ):
gc.add( calendar.date, 3 );
break;
case ( calendar.saturday ):
gc.add( calendar.date, 2 );
break;
default:
gc.add( calendar.date, 1 );
break;
}
return gc;
}
/**
* 取得指定日期的下一个月的最后一天
*
* @param date
* 指定日期。
* @return 指定日期的下一个月的最后一天
*/
public static synchronized java.util.date getlastdayofnextmonth(
java.util.date date )
{
/**
* 详细设计:
* 1.调用getnextmonth设置当前时间
* 2.以1为基础,调用getlastdayofmonth
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.settime( dateutil.getnextmonth( gc.gettime() ) );
gc.settime( dateutil.getlastdayofmonth( gc.gettime() ) );
return gc.gettime();
}
/**
* 取得指定日期的下一个星期的最后一天
*
* @param date
* 指定日期。
* @return 指定日期的下一个星期的最后一天
*/
public static synchronized java.util.date getlastdayofnextweek(
java.util.date date )
{
/**
* 详细设计:
* 1.调用getnextweek设置当前时间
* 2.以1为基础,调用getlastdayofweek
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.settime( dateutil.getnextweek( gc.gettime() ) );
gc.settime( dateutil.getlastdayofweek( gc.gettime() ) );
return gc.gettime();
}
/**
* 取得指定日期的下一个月的第一天
*
* @param date
* 指定日期。
* @return 指定日期的下一个月的第一天
*/
public static synchronized java.util.date getfirstdayofnextmonth(
java.util.date date )
{
/**
* 详细设计:
* 1.调用getnextmonth设置当前时间
* 2.以1为基础,调用getfirstdayofmonth
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.settime( dateutil.getnextmonth( gc.gettime() ) );
gc.settime( dateutil.getfirstdayofmonth( gc.gettime() ) );
return gc.gettime();
}
public static synchronized java.util.calendar getfirstdayofnextmonth(
java.util.calendar gc )
{
/**
* 详细设计:
* 1.调用getnextmonth设置当前时间
* 2.以1为基础,调用getfirstdayofmonth
*/
gc.settime( dateutil.getnextmonth( gc.gettime() ) );
gc.settime( dateutil.getfirstdayofmonth( gc.gettime() ) );
return gc;
}
/**
* 取得指定日期的下一个星期的第一天
*
* @param date
* 指定日期。
* @return 指定日期的下一个星期的第一天
*/
public static synchronized java.util.date getfirstdayofnextweek(
java.util.date date )
{
/**
* 详细设计:
* 1.调用getnextweek设置当前时间
* 2.以1为基础,调用getfirstdayofweek
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.settime( dateutil.getnextweek( gc.gettime() ) );
gc.settime( dateutil.getfirstdayofweek( gc.gettime() ) );
return gc.gettime();
}
public static synchronized java.util.calendar getfirstdayofnextweek(
java.util.calendar gc )
{
/**
* 详细设计:
* 1.调用getnextweek设置当前时间
* 2.以1为基础,调用getfirstdayofweek
*/
gc.settime( dateutil.getnextweek( gc.gettime() ) );
gc.settime( dateutil.getfirstdayofweek( gc.gettime() ) );
return gc;
}
/**
* 取得指定日期的下一个月
*
* @param date
* 指定日期。
* @return 指定日期的下一个月
*/
public static synchronized java.util.date getnextmonth( java.util.date date )
{
/**
* 详细设计:
* 1.指定日期的月份加1
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.add( calendar.month, 1 );
return gc.gettime();
}
public static synchronized java.util.calendar getnextmonth( java.util.calendar gc )
{
/**
* 详细设计:
* 1.指定日期的月份加1
*/
gc.add( calendar.month, 1 );
return gc;
}
/**
* 取得指定日期的下一天
*
* @param date
* 指定日期。
* @return 指定日期的下一天
*/
public static synchronized java.util.date getnextday( java.util.date date )
{
/**
* 详细设计: 1.指定日期加1天
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.add( calendar.date, 1 );
return gc.gettime();
}
public static synchronized java.util.calendar getnextday( java.util.calendar gc )
{
/**
* 详细设计: 1.指定日期加1天
*/
gc.add( calendar.date, 1 );
return gc;
}
/**
* 取得指定日期的下一个星期
*
* @param date
* 指定日期。
* @return 指定日期的下一个星期
*/
public static synchronized java.util.date getnextweek( java.util.date date )
{
/**
* 详细设计:
* 1.指定日期加7天
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.add( calendar.date, 7 );
return gc.gettime();
}
public static synchronized java.util.calendar getnextweek( java.util.calendar gc )
{
/**
* 详细设计:
* 1.指定日期加7天
*/
gc.add( calendar.date, 7 );
return gc;
}
/**
* 取得指定日期的所处星期的最后一天
*
* @param date
* 指定日期。
* @return 指定日期的所处星期的最后一天
*/
public static synchronized java.util.date getlastdayofweek(
java.util.date date )
{
/**
* 详细设计:
* 1.如果date是星期日,则加6天
* 2.如果date是星期一,则加5天
* 3.如果date是星期二,则加4天
* 4.如果date是星期三,则加3天
* 5.如果date是星期四,则加2天
* 6.如果date是星期五,则加1天
* 7.如果date是星期六,则加0天
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
switch ( gc.get( calendar.day_of_week ) )
{
case ( calendar.sunday ):
gc.add( calendar.date, 6 );
break;
case ( calendar.monday ):
gc.add( calendar.date, 5 );
break;
case ( calendar.tuesday ):
gc.add( calendar.date, 4 );
break;
case ( calendar.wednesday ):
gc.add( calendar.date, 3 );
break;
case ( calendar.thursday ):
gc.add( calendar.date, 2 );
break;
case ( calendar.friday ):
gc.add( calendar.date, 1 );
break;
case ( calendar.saturday ):
gc.add( calendar.date, 0 );
break;
}
return gc.gettime();
}
/**
* 取得指定日期的所处星期的第一天
*
* @param date
* 指定日期。
* @return 指定日期的所处星期的第一天
*/
public static synchronized java.util.date getfirstdayofweek(
java.util.date date )
{
/**
* 详细设计:
* 1.如果date是星期日,则减0天
* 2.如果date是星期一,则减1天
* 3.如果date是星期二,则减2天
* 4.如果date是星期三,则减3天
* 5.如果date是星期四,则减4天
* 6.如果date是星期五,则减5天
* 7.如果date是星期六,则减6天
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
switch ( gc.get( calendar.day_of_week ) )
{
case ( calendar.sunday ):
gc.add( calendar.date, 0 );
break;
case ( calendar.monday ):
gc.add( calendar.date, -1 );
break;
case ( calendar.tuesday ):
gc.add( calendar.date, -2 );
break;
case ( calendar.wednesday ):
gc.add( calendar.date, -3 );
break;
case ( calendar.thursday ):
gc.add( calendar.date, -4 );
break;
case ( calendar.friday ):
gc.add( calendar.date, -5 );
break;
case ( calendar.saturday ):
gc.add( calendar.date, -6 );
break;
}
return gc.gettime();
}
public static synchronized java.util.calendar getfirstdayofweek(
java.util.calendar gc )
{
/**
* 详细设计:
* 1.如果date是星期日,则减0天
* 2.如果date是星期一,则减1天
* 3.如果date是星期二,则减2天
* 4.如果date是星期三,则减3天
* 5.如果date是星期四,则减4天
* 6.如果date是星期五,则减5天
* 7.如果date是星期六,则减6天
*/
switch ( gc.get( calendar.day_of_week ) )
{
case ( calendar.sunday ):
gc.add( calendar.date, 0 );
break;
case ( calendar.monday ):
gc.add( calendar.date, -1 );
break;
case ( calendar.tuesday ):
gc.add( calendar.date, -2 );
break;
case ( calendar.wednesday ):
gc.add( calendar.date, -3 );
break;
case ( calendar.thursday ):
gc.add( calendar.date, -4 );
break;
case ( calendar.friday ):
gc.add( calendar.date, -5 );
break;
case ( calendar.saturday ):
gc.add( calendar.date, -6 );
break;
}
return gc;
}
/**
* 取得指定日期的所处月份的最后一天
*
* @param date
* 指定日期。
* @return 指定日期的所处月份的最后一天
*/
public static synchronized java.util.date getlastdayofmonth(
java.util.date date )
{
/**
* 详细设计:
* 1.如果date在1月,则为31日
* 2.如果date在2月,则为28日
* 3.如果date在3月,则为31日
* 4.如果date在4月,则为30日
* 5.如果date在5月,则为31日
* 6.如果date在6月,则为30日
* 7.如果date在7月,则为31日
* 8.如果date在8月,则为31日
* 9.如果date在9月,则为30日
* 10.如果date在10月,则为31日
* 11.如果date在11月,则为30日
* 12.如果date在12月,则为31日
* 1.如果date在闰年的2月,则为29日
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
switch ( gc.get( calendar.month ) )
{
case 0:
gc.set( calendar.day_of_month, 31 );
break;
case 1:
gc.set( calendar.day_of_month, 28 );
break;
case 2:
gc.set( calendar.day_of_month, 31 );
break;
case 3:
gc.set( calendar.day_of_month, 30 );
break;
case 4:
gc.set( calendar.day_of_month, 31 );
break;
case 5:
gc.set( calendar.day_of_month, 30 );
break;
case 6:
gc.set( calendar.day_of_month, 31 );
break;
case 7:
gc.set( calendar.day_of_month, 31 );
break;
case 8:
gc.set( calendar.day_of_month, 30 );
break;
case 9:
gc.set( calendar.day_of_month, 31 );
break;
case 10:
gc.set( calendar.day_of_month, 30 );
break;
case 11:
gc.set( calendar.day_of_month, 31 );
break;
}
//检查闰年
if ( ( gc.get( calendar.month ) == calendar.february )
&& ( isleapyear( gc.get( calendar.year ) ) ) )
{
gc.set( calendar.day_of_month, 29 );
}
return gc.gettime();
}
public static synchronized java.util.calendar getlastdayofmonth(
java.util.calendar gc )
{
/**
* 详细设计:
* 1.如果date在1月,则为31日
* 2.如果date在2月,则为28日
* 3.如果date在3月,则为31日
* 4.如果date在4月,则为30日
* 5.如果date在5月,则为31日
* 6.如果date在6月,则为30日
* 7.如果date在7月,则为31日
* 8.如果date在8月,则为31日
* 9.如果date在9月,则为30日
* 10.如果date在10月,则为31日
* 11.如果date在11月,则为30日
* 12.如果date在12月,则为31日
* 1.如果date在闰年的2月,则为29日
*/
switch ( gc.get( calendar.month ) )
{
case 0:
gc.set( calendar.day_of_month, 31 );
break;
case 1:
gc.set( calendar.day_of_month, 28 );
break;
case 2:
gc.set( calendar.day_of_month, 31 );
break;
case 3:
gc.set( calendar.day_of_month, 30 );
break;
case 4:
gc.set( calendar.day_of_month, 31 );
break;
case 5:
gc.set( calendar.day_of_month, 30 );
break;
case 6:
gc.set( calendar.day_of_month, 31 );
break;
case 7:
gc.set( calendar.day_of_month, 31 );
break;
case 8:
gc.set( calendar.day_of_month, 30 );
break;
case 9:
gc.set( calendar.day_of_month, 31 );
break;
case 10:
gc.set( calendar.day_of_month, 30 );
break;
case 11:
gc.set( calendar.day_of_month, 31 );
break;
}
//检查闰年
if ( ( gc.get( calendar.month ) == calendar.february )
&& ( isleapyear( gc.get( calendar.year ) ) ) )
{
gc.set( calendar.day_of_month, 29 );
}
return gc;
}
/**
* 取得指定日期的所处月份的第一天
*
* @param date
* 指定日期。
* @return 指定日期的所处月份的第一天
*/
public static synchronized java.util.date getfirstdayofmonth( java.util.date date )
{
/**
* 详细设计: 1.设置为1号
*/
gregoriancalendar gc = ( gregoriancalendar ) calendar.getinstance();
gc.settime( date );
gc.set( calendar.day_of_month, 1 );
return gc.gettime();
}
public static synchronized java.util.calendar getfirstdayofmonth( java.util.calendar gc )
{
/**
* 详细设计: 1.设置为1号
*/
gc.set( calendar.day_of_month, 1 );
return gc;
}
/**
* 将日期对象转换成为指定ora日期、时间格式的字符串形式。如果日期对象为空,返回 一个空字符串对象,而不是一个空对象。
*
* @param thedate
* 将要转换为字符串的日期对象。
* @param hastime
* 如果返回的字符串带时间则为true
* @return 转换的结果
*/
public static synchronized string toorastring( date thedate, boolean hastime )
{
/**
* 详细设计:
* 1.如果有时间,则设置格式为getoradatetimeformat()的返回值
* 2.否则设置格式为getoradateformat()的返回值
* 3.调用tostring(date thedate, dateformat
* thedateformat)
*/
dateformat theformat;
if ( hastime )
{
theformat = getoradatetimeformat();
}
else
{
theformat = getoradateformat();
}
return tostring( thedate, theformat );
}
/**
* 将日期对象转换成为指定日期、时间格式的字符串形式。如果日期对象为空,返回 一个空字符串对象,而不是一个空对象。
*
* @param thedate
* 将要转换为字符串的日期对象。
* @param hastime
* 如果返回的字符串带时间则为true
* @return 转换的结果
*/
public static synchronized string tostring( date thedate, boolean hastime )
{
/**
* 详细设计:
* 1.如果有时间,则设置格式为getdatetimeformat的返回值
* 2.否则设置格式为getdateformat的返回值
* 3.调用tostring(date thedate, dateformat thedateformat)
*/
dateformat theformat;
if ( hastime )
{
theformat = getdatetimeformat();
}
else
{
theformat = getdateformat();
}
return tostring( thedate, theformat );
}
/**
* 标准日期格式
*/
private static final simpledateformat date_format = new simpledateformat(
"mm/dd/yyyy" );
/**
* 标准时间格式
*/
private static final simpledateformat date_time_format = new simpledateformat(
"mm/dd/yyyy hh:mm" );
/**
* 带时分秒的标准时间格式
*/
private static final simpledateformat date_time_extended_format = new simpledateformat(
"mm/dd/yyyy hh:mm:ss" );
/**
* ora标准日期格式
*/
private static final simpledateformat ora_date_format = new simpledateformat(
"yyyymmdd" );
/**
* 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" );
/**
* 创建一个标准日期格式的克隆
*
* @return 标准日期格式的克隆
*/
public static synchronized dateformat getdateformat()
{
/**
* 详细设计: 1.返回date_format
*/
simpledateformat thedateformat = ( simpledateformat )
date_format.clone();
thedateformat.setlenient( false );
return thedateformat;
}
/**
* 创建一个标准时间格式的克隆
*
* @return 标准时间格式的克隆
*/
public static synchronized dateformat getdatetimeformat()
{
/**
* 详细设计: 1.返回date_time_format
*/
simpledateformat thedatetimeformat = ( simpledateformat ) date_time_format
.clone();
thedatetimeformat.setlenient( false );
return thedatetimeformat;
}
/**
* 创建一个标准ora日期格式的克隆
*
* @return 标准ora日期格式的克隆
*/
public static synchronized dateformat getoradateformat()
{
/**
* 详细设计: 1.返回ora_date_format
*/
simpledateformat thedateformat = ( simpledateformat ) ora_date_format
.clone();
thedateformat.setlenient( false );
return thedateformat;
}
/**
* 创建一个标准ora时间格式的克隆
*
* @return 标准ora时间格式的克隆
*/
public static synchronized dateformat getoradatetimeformat()
{
/**
* 详细设计: 1.返回ora_date_time_format
*/
simpledateformat thedatetimeformat = ( simpledateformat )
ora_date_time_format.clone();
thedatetimeformat.setlenient( false );
return thedatetimeformat;
}
/**
* 将一个日期对象转换成为指定日期、时间格式的字符串。 如果日期对象为空,返回一个空字符串,而不是一个空对象。
*
* @param thedate
* 要转换的日期对象
* @param thedateformat
* 返回的日期字符串的格式
* @return 转换结果
*/
public static synchronized string tostring( date thedate,
dateformat thedateformat )
{
/**
* 详细设计:
* 1.thedate为空,则返回""
* 2.否则使用thedateformat格式化
*/
if ( thedate == null )
return "";
return thedateformat.format( thedate );
}
}