6 апр. 2007 г.

Программулина

   Опять же про Пасху. Вот ссылка на статью в Википедии. Почитайте - полезно ;)
   В этой же статье есть алгоритм для вычисления даты Пасхи. Ну чего-то захотелось записать на понятном языке 8)

import java.util.*;

public class Velukden {
public static void main(String[] args) {
if (args.length == 1) {
try {
int year = Integer.parseInt(args[0]);
Calendar date = calculate(year);
Calendar today = new GregorianCalendar();
String answer;

if (date.compareTo(today) < 0)
answer = "праздновалась ";
else
answer = "будет праздноваться ";

System.out.println("В " + year + " году Пасха " + answer
+ date.get(Calendar.DATE) + ".0"
+ date.get(Calendar.MONTH) + "."
+ date.get(Calendar.YEAR));
} catch (NumberFormatException e) {
System.out
.println("Некорректный формат ввода. Проверьте значение параметра.");
e.printStackTrace();
}
} else
System.out.println("Некорректный формат ввода.");
}

private static Calendar calculate(int year) {
int d, e, month, day;

d = (19 * (year % 19) + 15) % 30;
e = d + (2 * (year % 4) + 4 * (year % 7) - d + 34) % 7 + year / 100
- year / 400 - 12;
month = e / 30 + 4;
day = e % 30 + 1;

Calendar result = new GregorianCalendar(year, month, day);

return result;
}
}

0 комментарий(я,ев):