package com.sky.date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test_Date {
//得到本月的最後一天
public static String getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DATE));
return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
}
//得到本月的第一天
public static String getFirstDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, cal.getMinimum(Calendar.DATE));
return new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
}
// 計算當月最後一天
public static String getLastDay(){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DATE,1);
cal.add(Calendar.MONTH, 1);
cal.add(Calendar.DATE, -1);
return format.format(cal.getTime());
}
//計算當月的第一天
public static String getFristDay(){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DATE, 1);//設爲當前月的1號
// cal.add(Calendar.MONTH,1);//設爲當前月
return format.format(cal.getTime());
}
//計算上一個月的第一天
public static String getLastMonthFristDay(){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DATE, 1);
cal.add(Calendar.MONTH,-1);
return format.format(cal.getTime());
}
// 計算上一個月最後一天
public static String getLastMonthLastDay(){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DATE, 1);//設置月的第一天
cal.add(Calendar.DATE, -1);//本月的一天-1就是上個月的最後一天
return format.format(cal.getTime());
}
//判斷當天是不是本月的第一天(判斷當天減去一天是不是上個月的最後一天)
public static String judgeFirst(){
Date date=new Date();
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date));//獲取當天
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DATE,day);
cal.add(Calendar.DATE, -1);//本月的第一天-1就是上個月的最後一天
String lastday1=format.format(cal.getTime());
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.DATE,1);
calendar.add(Calendar.DATE, -1);//本月的一天-1就是上個月的最後一天
String lastday2=format.format(calendar.getTime());
//當天是本月的第一天
return lastday1.equals(lastday2)?""+format.format(date)+"是本月的第一天":""+format.format(date)+"不是本月的第一天";
}
//判斷當天是不是本月的最後一天(判斷當天加一天是不是下個月的第一天)
public static String judgeLast(){
Date date=new Date();
int day=Integer.parseInt(new SimpleDateFormat("dd").format(date));//獲取當天
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DATE, day);
cal.add(Calendar.DATE, 1);//本月的最後一天+1就是下個月的第一天
String first=format.format(cal.getTime());
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.DATE, 1);
calendar.add(Calendar.MONTH, 1);//本月+1就表示下個月
calendar.add(Calendar.DATE, -1);//下個月的第一天-1天就是這個月的最後一天
String first2=format.format(calendar.getTime());
return first.equals(first2)? ""+format.format(date)+"是本月的最後一天":""+format.format(date)+"不是本月的最後一天";
}
public static void main(String[] args) {
Date date=new Date();
int year=Integer.parseInt(new SimpleDateFormat("yyyy").format(date));
int month=date.getMonth();
System.out.println("\n\t 本月的第一天 :"+getFirstDayOfMonth(year,month));
System.out.println("\n\t 本月的最後一天 :"+getLastDayOfMonth(year,month));
System.out.println("\n\t 計算當月的第一天 "+getFristDay());
System.out.println("\n\t 計算當月最後一天"+getLastDay());
System.out.println("\n\t 上一個月的第一天:"+getLastMonthFristDay());
System.out.println("\n\t 上一個月的最後一天:"+getLastMonthLastDay());
System.out.println("\n\t"+judgeFirst());
System.out.println("\n\t"+judgeLast());
}
}