我有一个班级作业:
该类应该有一个方法来计算两个日期之间的天数,返回星期几并给出给定日期的星座。
这是我写的代码:
import java.util.GregorianCalendar;
public class Data {
private GregorianCalendar date;
public Data(int year, int month, int day) {
date = new GregorianCalendar(year, month + 1, day);
}
public int differenceInDaysFrom(int year, int month, int day) {
GregorianCalendar tempDate = new GregorianCalendar(year, month, day);
int daysBetween = (int)(tempDate.getTimeInMillis()-date.getTimeInMillis())/(1000 * 60 * 60 * 24);
return Math.abs(daysBetween);
}
public String dayOfTheWeek() {
String[] stringDays = new String[]{ "Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday" };
return stringDays[date.get(GregorianCalendar.DAY_OF_WEEK) - 1];
}
public void zodiacSign() {
int day = date.get(GregorianCalendar.DATE);
int month = date.get(GregorianCalendar.MONTH);
System.out.println(day + " " + month);
}
}
当我
date
使用 YYY\MM\DD 进行初始化时,在检查 dayOfTheWeek 的近期日期时一切正常,但是当我输入我的出生日期 (1991\11\14) 时,它会在星期三返回,但我是在星期四出生的。当我试图获取 day 和 mont 来检查星座时,它完全吓坏了,当我输入 11 时返回 0(对于月份,days 效果很好)。
更重要的是......当我开始寻找
+1
月份时甚至differenceInDaysFrom
停止正常工作