java查找日期前一天,不使用date类

来源:互联网 发布:邮箱smtp服务器端口 编辑:程序博客网 时间:2024/04/29 22:58
public class Test {


/**
 * @param args
 */
public int year = 0;
public int month = 0;
public int day = 0;
public boolean flag = false;


public static void main(String[] args) {
System.out.println("前一天:" + new Test().getLastDay("20130301"));


}


public String getLastDay(String datestr) {
  String dateString = null;
year = Integer.parseInt(datestr.substring(0, 4));
month = Integer.parseInt(datestr.substring(5, 6));
day = Integer.parseInt(datestr.substring(7, 8));
day = day - 1;
if (day == 0) {
month = month - 1;
if (month == 0) {
year = year - 1;
}
}
if (month == 0) {
month = 12;
}
if (day == 0) {
day = getDayByMonth(year, month);
}
dateString = year + "" + month + "" + day;
return dateString;
}


public boolean isLeapYear(int year) {
flag = false;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
flag = true;
}
return flag;
}


public int getDayByMonth(int year, int month) {
int day = 0;
int[] daybymonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (month == 2) {
if (isLeapYear(year)) {
day = 29;
} else {
day = 28;
}
} else {
day = daybymonth[month - 1];
}
return day;


}


}
0 0
原创粉丝点击