`
- 浏览:
769837 次
-
packagecom.iwode.common;
importjava.text.DateFormat;
importjava.text.ParsePosition;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
importjava.util.GregorianCalendar;
publicclassCalendarUtil{
privateintweeks=0;
privateintMaxDate;
privateintMaxYear;
privatestaticCalendarcalendar=Calendar.getInstance();
publicstaticvoidmain(String[]args){
CalendarUtiltt=newCalendarUtil();
System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));
System.out.println("获取本周一日期:"+tt.getMondayOFWeek());
System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());
System.out.println("获取上周一日期:"+tt.getPreviousWeekday());
System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());
System.out.println("获取下周一日期:"+tt.getNextMonday());
System.out.println("获取下周日日期:"+tt.getNextSunday());
System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));
System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());
System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());
System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());
System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());
System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());
System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());
System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());
System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());
System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());
System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());
System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());
System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());
System.out.println("获取本季度第一天:"+tt.getThisSeasonFirstTime(11));
System.out.println("获取本季度最后一天:"+tt.getThisSeasonFinallyTime(11));
System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"
+CalendarUtil.getTwoDay("2008-12-1","2008-9-29"));
System.out.println("---------------->");
System.out.println("获取当前月的第几周:"+tt.getWeekOfMonth());
System.out.println("获取当前年份:"+tt.getYear());
System.out.println("获取当前月份:"+tt.getMonth());
System.out.println("获取今天在本年的第几天:"+tt.getDayOfYear());
System.out.println("获得今天在本月的第几天(获得当前日):"+tt.getDayOfMonth());
System.out.println("获得今天在本周的第几天:"+tt.getDayOfWeek());
System.out.println("获得半年后的日期:"+tt.convertDateToString(tt.getTimeYearNext()));
}
publicstaticintgetYear(){
returncalendar.get(Calendar.YEAR);
}
publicstaticintgetMonth(){
returncalendar.get(Calendar.MONTH)+1;
}
publicstaticintgetDayOfYear(){
returncalendar.get(Calendar.DAY_OF_YEAR);
}
publicstaticintgetDayOfMonth(){
returncalendar.get(Calendar.DAY_OF_MONTH);
}
publicstaticintgetDayOfWeek(){
returncalendar.get(Calendar.DAY_OF_WEEK);
}
publicstaticintgetWeekOfMonth(){
returncalendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
}
publicstaticDategetTimeYearNext(){
calendar.add(Calendar.DAY_OF_YEAR,183);
returncalendar.getTime();
}
publicstaticStringconvertDateToString(DatedateTime){
SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-dd");
returndf.format(dateTime);
}
publicstaticStringgetTwoDay(Stringsj1,Stringsj2){
SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd");
longday=0;
try{
java.util.Datedate=myFormatter.parse(sj1);
java.util.Datemydate=myFormatter.parse(sj2);
day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
}catch(Exceptione){
return"";
}
returnday+"";
}
publicstaticStringgetWeek(Stringsdate){
Datedate=CalendarUtil.strToDate(sdate);
Calendarc=Calendar.getInstance();
c.setTime(date);
returnnewSimpleDateFormat("EEEE").format(c.getTime());
}
publicstaticDatestrToDate(StringstrDate){
SimpleDateFormatformatter=newSimpleDateFormat("yyyy-MM-dd");
ParsePositionpos=newParsePosition(0);
Datestrtodate=formatter.parse(strDate,pos);
returnstrtodate;
}
publicstaticlonggetDays(Stringdate1,Stringdate2){
if(date1==null||date1.equals(""))
return0;
if(date2==null||date2.equals(""))
return0;
SimpleDateFormatmyFormatter=newSimpleDateFormat("yyyy-MM-dd");
java.util.Datedate=null;
java.util.Datemydate=null;
try{
date=myFormatter.parse(date1);
mydate=myFormatter.parse(date2);
}catch(Exceptione){
}
longday=(date.getTime()-mydate.getTime())/(24*60*60*1000);
returnday;
}
publicStringgetDefaultDay(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.set(Calendar.DATE,1);
lastDate.add(Calendar.MONTH,1);
lastDate.add(Calendar.DATE,-1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetPreviousMonthFirst(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.set(Calendar.DATE,1);
lastDate.add(Calendar.MONTH,-1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetFirstDayOfMonth(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.set(Calendar.DATE,1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetCurrentWeekday(){
weeks=0;
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+6);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
publicStringgetNowTime(Stringdateformat){
Datenow=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat(dateformat);
Stringhehe=dateFormat.format(now);
returnhehe;
}
privateintgetMondayPlus(){
Calendarcd=Calendar.getInstance();
intdayOfWeek=cd.get(Calendar.DAY_OF_WEEK)-1;
if(dayOfWeek==1){
return0;
}else{
return1-dayOfWeek;
}
}
publicStringgetMondayOFWeek(){
weeks=0;
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
publicStringgetSaturday(){
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7*weeks+6);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
publicStringgetPreviousWeekSunday(){
weeks=0;
weeks--;
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+weeks);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
publicStringgetPreviousWeekday(){
weeks--;
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7*weeks);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
publicStringgetNextMonday(){
weeks++;
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
publicStringgetNextSunday(){
intmondayPlus=this.getMondayPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,mondayPlus+7+6);
Datemonday=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreMonday=df.format(monday);
returnpreMonday;
}
privateintgetMonthPlus(){
Calendarcd=Calendar.getInstance();
intmonthOfNumber=cd.get(Calendar.DAY_OF_MONTH);
cd.set(Calendar.DATE,1);
cd.roll(Calendar.DATE,-1);
MaxDate=cd.get(Calendar.DATE);
if(monthOfNumber==1){
return-MaxDate;
}else{
return1-monthOfNumber;
}
}
publicStringgetPreviousMonthEnd(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.add(Calendar.MONTH,-1);
lastDate.set(Calendar.DATE,1);
lastDate.roll(Calendar.DATE,-1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetNextMonthFirst(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.add(Calendar.MONTH,1);
lastDate.set(Calendar.DATE,1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetNextMonthEnd(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.add(Calendar.MONTH,1);
lastDate.set(Calendar.DATE,1);
lastDate.roll(Calendar.DATE,-1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetNextYearEnd(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.add(Calendar.YEAR,1);
lastDate.set(Calendar.DAY_OF_YEAR,1);
lastDate.roll(Calendar.DAY_OF_YEAR,-1);
str=sdf.format(lastDate.getTime());
returnstr;
}
publicStringgetNextYearFirst(){
Stringstr="";
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
CalendarlastDate=Calendar.getInstance();
lastDate.add(Calendar.YEAR,1);
lastDate.set(Calendar.DAY_OF_YEAR,1);
str=sdf.format(lastDate.getTime());
returnstr;
}
privateintgetMaxYear(){
Calendarcd=Calendar.getInstance();
cd.set(Calendar.DAY_OF_YEAR,1);
cd.roll(Calendar.DAY_OF_YEAR,-1);
intMaxYear=cd.get(Calendar.DAY_OF_YEAR);
returnMaxYear;
}
privateintgetYearPlus(){
Calendarcd=Calendar.getInstance();
intyearOfNumber=cd.get(Calendar.DAY_OF_YEAR);
cd.set(Calendar.DAY_OF_YEAR,1);
cd.roll(Calendar.DAY_OF_YEAR,-1);
intMaxYear=cd.get(Calendar.DAY_OF_YEAR);
if(yearOfNumber==1){
return-MaxYear;
}else{
return1-yearOfNumber;
}
}
publicStringgetCurrentYearFirst(){
intyearPlus=this.getYearPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,yearPlus);
DateyearDay=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreYearDay=df.format(yearDay);
returnpreYearDay;
}
publicStringgetCurrentYearEnd(){
Datedate=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");
Stringyears=dateFormat.format(date);
returnyears+"-12-31";
}
publicStringgetPreviousYearFirst(){
Datedate=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");
Stringyears=dateFormat.format(date);
intyears_value=Integer.parseInt(years);
years_value--;
returnyears_value+"-1-1";
}
publicStringgetPreviousYearEnd(){
weeks--;
intyearPlus=this.getYearPlus();
GregorianCalendarcurrentDate=newGregorianCalendar();
currentDate.add(GregorianCalendar.DATE,yearPlus+MaxYear*weeks
+(MaxYear-1));
DateyearDay=currentDate.getTime();
DateFormatdf=DateFormat.getDateInstance();
StringpreYearDay=df.format(yearDay);
returnpreYearDay;
}
publicStringgetThisSeasonFirstTime(intmonth){
intarray[][]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
intseason=1;
if(month>=1&&month<=3){
season=1;
}
if(month>=4&&month<=6){
season=2;
}
if(month>=7&&month<=9){
season=3;
}
if(month>=10&&month<=12){
season=4;
}
intstart_month=array[season-1][0];
intend_month=array[season-1][2];
Datedate=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");
Stringyears=dateFormat.format(date);
intyears_value=Integer.parseInt(years);
intstart_days=1;
intend_days=getLastDayOfMonth(years_value,end_month);
StringseasonDate=years_value+"-"+start_month+"-"+start_days;
returnseasonDate;
}
publicStringgetThisSeasonFinallyTime(intmonth){
intarray[][]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
intseason=1;
if(month>=1&&month<=3){
season=1;
}
if(month>=4&&month<=6){
season=2;
}
if(month>=7&&month<=9){
season=3;
}
if(month>=10&&month<=12){
season=4;
}
intstart_month=array[season-1][0];
intend_month=array[season-1][2];
Datedate=newDate();
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy");
Stringyears=dateFormat.format(date);
intyears_value=Integer.parseInt(years);
intstart_days=1;
intend_days=getLastDayOfMonth(years_value,end_month);
StringseasonDate=years_value+"-"+end_month+"-"+end_days;
returnseasonDate;
}
privateintgetLastDayOfMonth(intyear,intmonth){
if(month==1||month==3||month==5||month==7||month==8
||month==10||month==12){
return31;
}
if(month==4||month==6||month==9||month==11){
return30;
}
if(month==2){
if(isLeapYear(year)){
return29;
}else{
return28;
}
}
return0;
}
publicbooleanisLeapYear(intyear){
return(year%4==0&&year%100!=0)||(year%400==0);
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
CalendarUtil
android应用中很实用的日历(获取农历)
public class CalendarUtil { public static void main(String args[]) { System.out.println("First day of week is : " + new SimpleDateFormat("yyyy-MM-dd") .format(getFirstDateByWeek(new ...
Java开发中中经常使用的Java工具类分享,工作中用得上,直接拿来使用,不用重复造轮子。
java Calendar详解及其各种例子
工具类 DateUtil(日期处理) CalendarUtil(时间处理) PinyinUtils(汉字转拼音) PropertiesFileUitl(键值对文件存取)等,继续更新
调用calendarUtil.getCalendar( )控制台输出当月日历
提供对Cron表达式的解析,压缩包中提供一个CalendarUtil.java类,是对表达式的解析使用工具类。可以直接使用来解析Cron表达式。也可对源代码进行修改。
中国农历计算程序 本程序利用天文数据推算二十四节气以及中国农历历法。目前已完成节气推算和新月时间推算功能...可参考oyyq.calendar.util.CalendarUtil.fromJulianDate(double, TimeZone, boolean)函数以及oyyq.calen