Добавление минут к дате не меняет дату C# .NET

двойной TotalMinute = 300.0 двойной TotalMinutesAdded = 1378.0


double TotalMinute=300.0
double TotalMinutesAdded=1378.0

foreach(DataRow dr in ds.Tables[0].Rows)
                {

                    //Add The above Timings to each Row's 2nd Column
                    DateTime correctDate=Convert.ToDateTime(dr[2]);

                    correctDate.AddMinutes(TotalMinute);
                    correctDate.AddMinutes(TotalMinutesAdded);

                    dr[2]=correctDate;

                }

Библиотека MSDN должна иметь по одному примеру для каждой записи метода MSDN, чтобы люди сразу же получили его. msdn.microsoft.com/en-us/library/…

Tony_Henrich 08.04.2010 21:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
12 662
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Функции DateTime Add * не должны изменять текущее значение даты и времени. Они ВОЗВРАЩАЮТ новую Ценность.

Если вы хотите изменить значение, введите следующее:

correctDate = correctDate.AddMinutes(TotalMinute);

Учитывая, что correctDate - это DateTime, я не уверен, что делает .Value, но ваша точка зрения достаточно ясна ;-p

Marc Gravell 08.01.2009 16:27

Вы должны установить переменную rightDate для экземпляра, возвращаемого при вызове AddMinutes:

correctDate = correctDate.AddMinutes(TotalMinute);

AddMinutes () не изменяет значение исходного DateTime. Он возвращает новый DateTime с новым значением, которое вы должны присвоить переменной.

DateTime неизменен; такие функции, как AddMinutes, возвращают новый DateTime; поэтому вам нужно поймать возвращаемое значение:

DateTime foo = ...
DateTime bar = foo.AddMinutes(5);

Было бы очень хорошо, если бы единственный член экземпляра в DateTime был помечен только для чтения, поскольку он фактически неизменяемый.

JaredPar 08.01.2009 18:27

DateTime - это неизменяемый тип, как и String. Вы должны написать date = date.AddDays (1), как если бы вы написали str = str.Replace ("привет", "").

Проблема заключается в

correctDate.AddMinutes(TotalMinute); 
correctDate.AddMinutes(TotalMinutesAdded);

так должно быть

correctDate = correctDate.AddMinutes(TotalMinute); 
correctDate = correctDate.AddMinutes(TotalMinutesAdded);

Метод AddMinutes возвращает результат, не добавляя минуты в correDate.

Ответ принят как подходящий

Как уже упоминалось, из-за того, что объекты DateTime неизменяемы, вам необходимо переназначить переменную.

Однако следует отметить, что вы можете связать манипуляции следующим образом:

correctDate = correctDate.AddMinutes(TotalMinute)
                         .AddMinutes(TotalMinutesAdded);

... и добавить, скажем, 5 минут к текущему времени в переменную datetime:

dim dateFive_Minute_Time as datetime

dateFive_Minute_Time = Now.AddMinutes(5)

Другие вопросы по теме