Программирование >>  Автоматически обновляемые приложения 

1 ... 9 10 11 [ 12 ] 13 14 15 ... 170


Листинг 2.23. Собственный метод DateDif£

Наш собственный метод вычисления разницы в датах public static int DaysDiff(DateTime datel, DateTime date2) {

return datel.Subtract(date2.Date).Days;

private void butDateDiffCS Click(object sender, EventArgs e) {

string howdays = DaysDiff(DateTime.Today,

new DateTime(1966, 07, 27)).ToString(); MessageBox.Show( Co дня моего дня рождения прошло: + howdays);

Я решил проверить, сколько дней прошло со дня моего рождения до сегодняшнего дня, и получил красивое число. Оказывается, на момент написания этих строк я прожил ровно 15 ООО дней (рис. 2.4).

Текущее время

DateDiff (VB)

DateDiff (С#)

Сравниваем производительность

+ 7 дней

Високосный ли год?

Со дня моего ДНЯ рождения прошло: 15000 дней

Рис. 2.4. Сколько дней прошло со дня моего рождения

Как определить, является ли год високосным?

Для определения, является ли указанный год високосным годом, используйте функцию isLeapYear, которая возвращает значение true, если год является



Листинг 2.24. Проверка на високосный год

bool leapYear = DateTime.IsLeapYear(DateTime.Now.Year); MessageBox.Show(

String.Format( {0} является високосным годом: {1} ,

DateTime.Now.Year, leapYear));

Таюке поищите в документации материал о функциях isLeapDay и isLeapMonth, которые помогут определить, являются ли указанные день или месяц високосными.

Вычисление даты католической Пасхи

Как вы знаете, праздник Пасхи каждый год приходится на разные числа. Существуют специальные правила для вычисления иудейской, католической и православной Пасхи. На сайте http: snippets.dzone.coin/posts/show/765 я нашел алгоритм, вычисляющий дату католической Пасхи, реализованный в листинге 2.25.

1 Листинг 2.25. Вычисление даты католической Пасхи

/ <summary>

/ Алгоритм для вычисления католической Пасхи / http: snippets.dzone.com/posts/show/765 / </summary>

/ <param пате= уеаг >Год</рагат>

/ <returns>nacxa</returns>

public static DateTime EasterDate(int year)

year;

Y % 19;

Y / 100;

Y % 100;

b / 4;

b % 4;

(b + 8) / 25;

(b - f + 1) / 3;

високосным, и значение false, если год таким не является. Провер1м в следующем примере, приведенном в листинге 2.24, является ли текущий год високосным.



private void butEaster Click(object sender, EventArgs e) {

когда была католическая Пасха в 2006 году MessageBox.Show(EasterDate(2006).ToLongDateString() ) ;

Более подробно об алгоритмах вычисления дат Пасхи вы можете узнать из Википедии по адресу http: ru.wikipedia.org/wiki/nacxa.

Примечание

Примеры, иллюстрирующие работу с датами, находятся в папке DateSam-ples на прилагаемом диске.

Числа

Преобразование числа

в шестнадцатеричную систему счисления

Программистам часто приходится иметь дело с шестнадцатеричной системой счисления. Преобразовать число в шестнадцатеричную строку не составит никакого труда при помощи метода ToString (листинг 2.26).

; Листинг 2.26. Преобразование числа в шестнадцатеричное значение

int parrots = 38;

textBoxl.Text = parrots.ToString( X8 );

int h = (19 * а + b - d - g + 15) % 30; int i = с / 4; int к = с % 4;

int L = (32 + 2 * e + 2 * i - h - k) % 7; int m = (a + 11 * h + 22 * L) / 451; int month = (h+L-7*m+ 114) / 31; int day =((h+L-7*m+ 114) % 31) + 1; DateTime dt = new DateTime(year, month, day); return dt;



1 ... 9 10 11 [ 12 ] 13 14 15 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика