java编程 输出昨天日期

来源:百度知道 编辑:UC知道 时间:2024/05/15 12:46:03
设计一个函数,该函数功能为:根据入口参数Today,函数返回Today的前一天Yesterday, 入口参数Today和出口参数Yesterday均为8位定长的字符串,格式为:YYYYMMDD。例如:Today=”20040303”,函数返回Yesterday为:”20040302”; Today=”20040301”,函数返回Yesterday为:”20040229”。
为简单,不需要对Today的格式做合法性检查。
C语法定义为,int getYesterday ( char * Today , char * Yesterday ) ;
Java 语法定义为,static String getYesterday ( String Today ),返回值为Yesterday;
注:可能用到的字符串转化为整数的参考函数有int atoi( char * ),static int Integer.parseInt( String );如果使用Java编程,只允许使用字符串类String等基本的方法和类,不允许使用java某些特有类以及这些类自带的方法,如java.util.Date类、java.util.Calendar类。

public class DateCalcu {
public static String getYesterday(String Today) {
String Yes = "";
String year = "", month = "", day = "";
int y = 0, m = 0, d = 0;
year = Today.substring(0, 4);
month = Today.substring(4, 6);
day = Today.substring(6, 8);
y = Integer.parseInt(year);
m = Integer.parseInt(month);
d = Integer.parseInt(day);
d = d - 1;
if (d == 0) {
m = m - 1;
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10) {
d = 31;
}
if (m == 2)
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) // 如果是闰年
d = 29;
else
d = 28;
else if (m != 0)
d = 30;
}
if (m == 0) {
y = y - 1;
m = 12;
d = 31;
}
year = String.valueOf(y);
if (m < 10)
month = "0" + String.valueOf(m);
else
month = String.valueOf(m);
if (d < 10)
day