-1
Мне нужно создать программу, которая показывает день недели, когда вы вводите конкретную дату на консоль.Расчет дня недели, введя определенную дату
Вот код, который я написал, но все еще не работает, почему бы и нет?
public class CalculateDay{
public static void main(String []args){
int m = Integer.parseInt(args[0]);
int d = Integer.parseInt(args[1]);
int y = Integer.parseInt(args[2]);
System.out.println("Finding day of week for "+m+"-"+d+"-"+y);
int yo = y - ((14-m)/12);
int x = yo + yo/4 - yo/100 + yo/400;
int mo = m + 12*((14-m)/12) -2;
int dayOfWeek = (d + x + (31*mo)/12)%7;
String dayString;
switch(dayOfWeek){
case 0: dayString = "Sunday";
break;
case 1: dayString = "Monday";
break;
case 2: dayString = "Tuesday";
break;
case 3: dayString = "Wednesday";
break;
case 4: dayString = "Thursday";
break;
case 5: dayString = "Friday";
break;
case 6: dayString = "Saturday";
break;
default: dayString = "Could not find";
}
System.out.println(dayString);
}
}
Почему вы думаете, что * должна * работа? Как вы думаете, что вы здесь вычисляете? Какой вклад вы даете, какой результат вы получаете, чего вы ожидаете? –
Вы можете рассчитать число юлианских дней с григорианской даты [используя описанный здесь метод] (https://en.wikipedia.org/wiki/Julian_date#Converting_Julian_or_Gregorian_calendar_date_to_Julian_day_number). В вашем коде есть подсказки этого метода (например, '(14-м)/12' и' yo/4-yo/100 + yo/400'), но это не совсем то же самое. Возможно, попробуйте этот метод, посмотрите, сможете ли вы получить правильный ответ. –
У меня есть базовый расчёт Григорианского календаря выше, затем я использовал конструкцию switch (как это требовалось назначением). Я определенно сделал что-то не так, но я просто не мог его найти. Спасибо за советы, я буду смотреть на это. –