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

本文提供了一个Java程序,用于计算给定日期的前一天。程序通过解析输入的日期字符串,并进行相应的日期调整来实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;


}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值