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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> С# - Работа с DateTime, способы сложения дат 
V
    Опции темы
AtaL
Дата 8.11.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Задача - любым способом сложить две даты. Т.е., скажем, 1.1.2010 + 1.2.2010 - 2.3.4020.

По идее, нужно перевести даты в количество дней(часов, минут - чем крупнее единица, тем лучше), сложить два числа, сумму снова перевести в дату.

Подскажите, пожалуйста, как это сделать?  smile  C# учу с нуля.
PM   Вверх
mr.DUDA
Дата 8.11.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



А какой смысл в таком сложении дат ? То есть, зачем годы складывать ?

Для операций с датами есть класс TimeSpan, с его помощью можно прибавить к дате определённый промежуток времени (максимальная единица - дни). Либо можно использовать методы DateTime.AddYears и т.п.



--------------------
user posted image
PM MAIL WWW   Вверх
archimed7592
Дата 8.11.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



явно складывать дату можно только с интервалом (TimeSpan). можно конечно извратится, вопрос, только зачем?
Код
DateTime dt1 = new DateTime(2006, 09, 01);
DateTime dt2 = new DateTime(2006, 10, 05);
DateTime dt = dt1.AddYears(dt2.Year);
dt = dt.AddMonths(dt2.Month);
dt = dt.AddDays(dt2.Day);



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
AtaL
Дата 8.11.2006, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да задача не несет особой практической ценности, это обучение. Так что знаний мало, а друных вопросов, наоборот, много.)
А Add[...]  сработало.) Спасибо!

Добавлено @ 12:25 
archimed7592, как раз сама то же самое сделала)) Спасибо)
PM   Вверх
ivashkanet
Дата 8.11.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



А у меня лучше  smile 
Код

DateTime d3 = DateTime.Now + (DateTime.Now - DateTime.MinValue);


P.S. Но я полностью согласен с Дудой

Добавлено @ 12:29 
Так будет понятнее:
Код

            DateTime d1 = new DateTime(2006, 09, 01);
            DateTime d2 = new DateTime(2006, 10, 05);
            DateTime d3 = d1+ (d2 - DateTime.MinValue);

В minValue лежит нулевая дата, поэтому при ее вычитании ничего не происходит, кроме преобразования к TimeSpan
PM MAIL WWW ICQ   Вверх
AtaL
Дата 13.11.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ivashkanet, спасибо smile
P.S. Хорошие фотографии smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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