Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как получить последний день месяца ? 
:(
    Опции темы
Timus
Дата 27.3.2007, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



Доброго всем времени суток.
Вот что-то не могу сообразить как получить номер последнего дня месяца.
Мне надо создать диапазон дней от 01 числа и до последнего чесла указаного месяца в году .... 
Может кто знает ?
PM MAIL   Вверх
Artorius
Дата 27.3.2007, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 27.3.2007

Репутация: 1
Всего: 1



Пользуйся DateTime.DaysInMonth(int year, int month)
PM MAIL   Вверх
Timus
Дата 27.3.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



м да. ....... 
а я 2а дня потратил на это smile 
PM MAIL   Вверх
Naum
Дата 27.3.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



А чем не подходит статический метод DateTime.DaysInMonth(int year, int month)?

Добавлено через 1 минуту и 2 секунды
Опоздал.


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
ivashkanet
Дата 27.3.2007, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Artorius @  27.3.2007,  12:23 Найти цитируемый пост)
DateTime.DaysInMonth(int year, int month) 

Прикольно. Чего только создатели FW не реализовали  smile 

Я уже хотел предложить велосипед:
Код

new DateTime(year, month+1, 1).AddHours(-1).Day

PM MAIL WWW ICQ   Вверх
Naum
Дата 27.3.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



 smile 
Кстати, интересно как во 2 дотнете проверяется год на "високосность".
Код

public static bool IsLeapYear(int year)
{
    if ((year < 1) || (year > 0x270f))
    {
        throw new ArgumentOutOfRangeException("year", Environment.GetResourceString("ArgumentOutOfRange_Year"));
    }
    if ((year % 4) != 0)
    {
        return false;
    }
    if ((year % 100) == 0)
    {
        return ((year % 400) == 0);
    }
    return true;
}

Я че-то не пойму. Кроме делимости на 4, зачем проверять что-то еще.


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
ivashkanet
Дата 27.3.2007, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Naum @  27.3.2007,  12:46 Найти цитируемый пост)
    if ((year % 100) == 0)
    {
        return ((year % 400) == 0);
    }

С какого-то перепугу 100-й, 200, 300, 500-й года не високосные  smile 
PM MAIL WWW ICQ   Вверх
QryStaL
Дата 27.3.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Високосный год определяется по следующему правилу: 
Год високосный, если он делится на четыре без остатка, но если он делится на 100 без остатка, это не високосный год. Однако, если он делится без остатка на 400, это високосный год.

Так что в алгоритме все правильно.

Это сообщение отредактировал(а) QryStaL - 27.3.2007, 14:18


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Naum
Дата 27.3.2007, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



 smile 
Я так и думал, что в школе чего-то не договаривают.


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
ivashkanet
Дата 27.3.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(QryStaL @  27.3.2007,  13:14 Найти цитируемый пост)
но если он делится на 100 без остатка, это не високосный год. Однако, если он делится без остатка на 400, это високосный год.

А чё так  smile

Добавлено через 2 минуты и 45 секунд
Цитата(http://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%81%D0%BE%D0%BA%D0%BE%D1%81%D0%BD%D1%8B%D0%B9_%D0%93%D0%BE%D0%B4)

тропического года (время между двумя весенними равноденствиями) составляет 365 суток 5 часов 48 минут 46 секунд. Различие в продолжительности тропического года и среднего юлианского календарного года (365,25 суток) составляет 11 минут 14 секунд. Из этих 11 минут и 14 секунд приблизительно за 128 лет складываются одни сутки.

По истечении столетий было замечено смещение дня весеннего равноденствия, с которым связаны церковные праздники. К XVI веку весеннее равноденствие наступало примерно на 10 суток раньше 21 марта, используемого для определения дня Пасхи.

Чтобы компенсировать накопившуюся ошибку и избежать подобного смещения в будущем, в 1582 году римский папа Григорий XIII провёл реформу календаря. Чтобы средний календарный год лучше соответствовал солнечному, было решено изменить правило високосных лет. По-прежнему високосным оставался год, номер которого кратен четырём, но исключение делалось для тех, которые были кратны 100. Отныне такие годы были високосными только тогда, когда делились ещё и на 400.

Иными словами, год является високосным, если он кратен 4 и при этом не кратен 100 либо кратен 400. Год не является високосным, если он не кратен 4 либо кратен 4, но при этом кратен 100 и не кратен 400.

Годы смены столетий, оканчивающиеся на два нуля, в трёх случаях из четырёх не являются високосными. Так, годы 1700, 1800 и 1900 не были високосными, так как они кратны 100 и не кратны 400. Год 2000 — високосный, так как он кратен 400. 2100, 2200 и 2300 — не високосные. В високосные годы вводится дополнительный день — 29 февраля.

PM MAIL WWW ICQ   Вверх
QryStaL
Дата 27.3.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



В Григорианском календаре (новый стиль) — для устранения несоответствия календарного и солнечного (астрономического) года 100-й год не считается високосным, но каждый 400-й — считается. Ошибка средней продолжительности года в этом алгоритме составляет всего 26 секунд.


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.