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);
}
}
Когда я инициализирую дату с помощью ГГГ\ММ\ДД, все работает идеально при проверке dayOfTheWeek на ближайшие даты, но когда я ставлю дату своего рождения (1991\11\14), она возвращает среду, но я родился в четверг.
Когда я пытаюсь получить день и месяц для проверки знака зодиака, это полный ужас и возвращает 0, когда я ввожу 11 (месяц, дни работают хорошо).
Более того... Когда я начал возиться с +1 к месяцу, даже разницаInDaysFrom перестала работать должным образом
В классе должны быть методы расчета количества дней между двумя датами, возврата дня недели и указания знака зодиака для заданной даты.
И вот код, который я написал:
[code]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); }
[list] [*]Когда я инициализирую дату с помощью ГГГ\ММ\ДД, все работает идеально при проверке dayOfTheWeek на ближайшие даты, но когда я ставлю дату своего рождения (1991\11\14), она возвращает среду, но я родился в четверг. [*]Когда я пытаюсь получить день и месяц для проверки знака зодиака, это полный ужас и возвращает 0, когда я ввожу 11 (месяц, дни работают хорошо). [*]Более того... Когда я начал возиться с +1 к месяцу, даже разницаInDaysFrom перестала работать должным образом [/list]