最近在完成一个小项目时,碰到要取一个月部份日期的问题,经过一番努力后终于完成了。由于学习才刚刚学习java,不足之处还请指正。实现的功能有:
1. 根据输入的日期,返回当前月份的每一天。
2.根据输入的日期,返回昨天的日期。
3.返回当前日期的月份天数
根据输入的日期,返回当前月份的每一天
public List<String> getMonthDaylist(String date) // 获取当前月份1号到最后的每一天(如果是当前月份则到当天为止)
{
List<String> dayList=new LinkedList<String>();
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar1=Calendar.getInstance();
Calendar calendar2=Calendar.getInstance();
Calendar calendar3=Calendar.getInstance();
int YEAR=Integer.valueOf(date.substring(0,4)).intValue();
int MONTH=Integer.valueOf(date.substring(5,7)).intValue();
int DAY=Integer.valueOf(date.substring(8,10)).intValue();
calendar1.set(YEAR, MONTH-1,DAY); // 因为month中0为1月,所以减去1.
calendar2.setTime(new Date());
//calendar2.set(2017,6,1);
calendar3.set(YEAR, MONTH-1,1);
boolean a=calendar1.get(Calendar.YEAR)==calendar2.get(Calendar.YEAR);
boolean b=calendar1.get(Calendar.MONTH)==calendar2.get(Calendar.MONTH);
System.out.println("Time1="+format.format(calendar1.getTime()));
System.out.println("Time2="+format.format(calendar2.getTime()));
int num=(a&&b)? calendar2.get(Calendar.DATE):getMonthOfDay(date);;
int count=0;
while(count<num)
{
count++;
//System.out.println(format.format(calendar3.getTime()));
dayList.add(format.format(calendar3.getTime()));
calendar3.roll(Calendar.DATE, +1);
}
return dayList;
}
根据输入的日期,返回昨天的日期
public String getYestoday(String date)
{
SimpleDateFormat format;
Calendar calendar;
int YEAR=Integer.valueOf(date.substring(0,4)).intValue();
int MONTH=Integer.valueOf(date.substring(5,7)).intValue();
int DAY=Integer.valueOf(date.substring(8,10)).intValue();
format=new SimpleDateFormat("yyyy-MM-dd");
calendar=Calendar.getInstance();
calendar.set(YEAR, MONTH,DAY);
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)-1);
return format.format(calendar.getTime());
}
返回当前日期的月份天数
public int getMonthOfDay(String date) // 获取当前月份的天数
{
Calendar calendar=Calendar.getInstance();
int YEAR=Integer.valueOf(date.substring(0,4)).intValue();
int MONTH=Integer.valueOf(date.substring(5,7)).intValue();
calendar.set(YEAR, MONTH+0,+1); // 将月份加1个月
calendar.set(Calendar.DATE,-0); // 将天数减1
return calendar.get(Calendar.DATE);
}
总的来说,就是Calendar类的应用。
ps:需要注意的一点是,Calendar的月份从0开始。