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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Количество месяцев между датами 
:(
    Опции темы
firefox
Дата 18.5.2011, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть два числа типа DateTime, нужно получить, количество месяцев между ними?

10.05.2011 
10.09.2011 


Это сообщение отредактировал(а) firefox - 18.5.2011, 23:54
PM MAIL   Вверх
Экскалупатор
Дата 19.5.2011, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



да в общем все просто, прочитай в msdn про структуру DateTime
Код

DateTime date1 = Convert.ToDateTime("10.05.2011");
            DateTime date2 = Convert.ToDateTime("10.09.2011");
            int i = Math.Abs(date1.Month - date2.Month);


Добавлено через 3 минуты и 19 секунд
главное не забыть предусмотреть что между "01.12.2011" и "01.01.2012" количество месяцев равно 1, а не 11. но я думаю с этим по аналогии уже будет не сложно разобраться.
PM MAIL ICQ   Вверх
likegift
Дата 19.5.2011, 05:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Экскалупатор, а между "01.12.2001" и "01.01.2012" их еще больше smile
firefox,
Пишу по памяти: (datetime1-datetime2).totalMonth

Это сообщение отредактировал(а) likegift - 19.5.2011, 05:30
PM MAIL   Вверх
-Mikle-
Дата 19.5.2011, 07:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата(likegift @  19.5.2011,  08:25 Найти цитируемый пост)
Пишу по памяти: (datetime1-datetime2).totalMonth

Память хорошая  smile , только наоборот надо.
Код

(datetime2 - datetime1).TotalMonth;

Пояснение: Результат вычитания двух дат - это структура TimeSpan, в которой есть свойство TotalMonth.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Экскалупатор
Дата 19.5.2011, 08:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



согласен, но если честно то я что то не нашел такого свойства, у меня студия(VS2008) показывает только до дней, и в любом случае надо следить что бы число было положительным.
PM MAIL ICQ   Вверх
likegift
Дата 19.5.2011, 09:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Экскалупатор)
согласен, но если честно то я что то не нашел такого свойства, у меня студия(VS2008) показывает только до дней

странно, у меня даже в vs2003 это свойство было smile


Цитата(Экскалупатор)
 и в любом случае надо следить что бы число было положительным.

(Abs(datetime1-datetime2)).totalMonth, не?

Цитата(-Mikle-)
 Память хорошая, только наоборот надо.

я всегда оставляю место для подумать smile

PM MAIL   Вверх
Экскалупатор
Дата 19.5.2011, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

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



Цитата(likegift @  19.5.2011,  08:36 Найти цитируемый пост)
странно, у меня даже в vs2003 это свойство было

действительно странно, на работе установлена VS2010, но такого свойства в структуре TimeSpan в нем тоже нету. и тут почему то тоже про это не сказано. покажите где есть, мне нравится это свойство хочу что бы у меня тоже такое было.

Добавлено через 3 минуты и 21 секунду
вообще не понятно каким образом это свойство может рассчитать количество месяцев без привязки к конкретным датам. ведь TimeSpan это интервал времени, т.е. в ней нету точного числа с которого нужно начать она просто хранит сколько прошло, и как она может считать месяцы если в месяцах разное количество дней?

Добавлено через 8 минут и 48 секунд
т.е. к примеру в структуре хранится 90 дней, сколько тогда должно вернуть это свойство? если взять к примеру месяцы с мая то получим меньше трех, а если начать с февраля то больше трех.
PM MAIL ICQ   Вверх
mrbrooks
Дата 19.5.2011, 12:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Экскалупатор, я не удивлюсь если речь идет о расширении  smile 

в таком случае вопрос ТС решается просто:

Код

    static class DataeExtension
    {
        public static int TotalMonth(this DateTime lValue, DateTime rValue)
        {
               return Math.Abs((lValue.Month - rValue.Month) + 12 * (lValue.Year - rValue.Year));
        }
    }

PM MAIL   Вверх
likegift
Дата 19.5.2011, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Экскалупатор @ 19.5.2011,  15:19)
Цитата(likegift @  19.5.2011,  08:36 Найти цитируемый пост)
странно, у меня даже в vs2003 это свойство было

действительно странно, на работе установлена VS2010, но такого свойства в структуре TimeSpan в нем тоже нету. и тут почему то тоже про это не сказано. покажите где есть, мне нравится это свойство хочу что бы у меня тоже такое было.

Добавлено @ 12:22
вообще не понятно каким образом это свойство может рассчитать количество месяцев без привязки к конкретным датам. ведь TimeSpan это интервал времени, т.е. в ней нету точного числа с которого нужно начать она просто хранит сколько прошло, и как она может считать месяцы если в месяцах разное количество дней?

Добавлено @ 12:28
т.е. к примеру в структуре хранится 90 дней, сколько тогда должно вернуть это свойство? если взять к примеру месяцы с мая то получим меньше трех, а если начать с февраля то больше трех.

а Вы молодец, Вас так просто не обдуришь smile 
я действительно напридумывал про TotalMonth, потому-что не тока в месяцах разное кол-во дней, но иногда и в днях разное кол-во минут.
больше не буду по памяти писать ):
PM MAIL   Вверх
firefox
Дата 19.5.2011, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2mrbrooks Спасибо
PM MAIL   Вверх
-Mikle-
Дата 20.5.2011, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата(Экскалупатор @  19.5.2011,  15:19 Найти цитируемый пост)
действительно странно, на работе установлена VS2010, но такого свойства в структуре TimeSpan в нем тоже нету. и тут почему то тоже про это не сказано. покажите где есть, мне нравится это свойство хочу что бы у меня тоже такое было.

smile вот блин... попался тоже на веру да еще и подтвердил smile 
Помню что Total* было, а то что среди доступных были только до дней, не помню... 

likegift  smile  больше так smile 


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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