クラスの割り当てがあります。
クラスには、2つの日付の間の日数を計算し、曜日を返し、特定の日付の星座を与えるメソッドが必要です。
そして、これが私が書いたコードです:
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);
}
}
YYY \ MM \ DDで初期化
date
すると、dayOfTheWeekで近い将来の日付を確認するとすべてが完璧に機能しますが、誕生日(1991 \ 11 \ 14)を入力すると水曜日に戻りますが、木曜日に生まれました。私が星座をチェックするために日と月を取得しようとすると、それは完全に異常になり、11を入力すると0を返します(月の場合、日はうまくいきます)。
さらに...私が今月とぶらぶらし始めたとき、
+1
適切にdifferenceInDaysFrom
動作しなく なった