EDIT * {Original title = "DateTime.Now отличается при установке 2 переменных".
Что я хочу сделать, это назначить одну переменную, используя дату и время другой, которая получает значение, установленное из DateTime.Теперь
}
Этот вопрос по сути аналогичен этому "Разница в DateTime в тиках не совпадает" .
В основном у меня есть форма ипользователь может выбрать дату и время, я проверяю, редактировал ли пользователь форму при нажатии кнопки закрытия.Если они отредактировали форму, всплывающее окно покажет пользователю, хотят ли они отказаться от изменений.
Когда я запускаю форму (для создания), я запускаю этот код в методе, называемом InitEvent()
:
var startDate = DateTime.Now;
var endDate = startDate.AddHours(1);
var startTime = startDate.TimeOfDay;
var endTime = endDate.TimeOfDay;
_eventStartDate = startDate;
_eventEndDate = endDate;
_eventStartTime = startTime;
_eventEndTime = endTime;
_uneditedEvent = new EventItem()
{
StartDateTime = _eventStartDate,
EndDateTime = _eventEndDate,
};
Перед закрытием формы я запускаю некоторый код для проверки несохраненных изменений:
if (_uneditedEvent.Type != _eventItem.Type ||
_uneditedEvent.CustomerCode != _eventItem.CustomerCode ||
_uneditedEvent.ProjectCode != _eventItem.ProjectCode ||
_uneditedEvent.StartDateTime != _eventItem.StartDateTime ||
_uneditedEvent.EndDateTime != _eventItem.EndDateTime ||
_uneditedEvent.Notes != _eventItem.Notes)
{
var action = await _pageDialogue.DisplayAlertAsync("Unsaved Changes", "Do you want to abandon this event?", "Yes", "No");
switch (action)
{
case false:
return;
}
}
Теперь, когда этот код проверки запускается, время даты ВСЕГДА отличается.разница сводится к клещам.Дата, часы, минуты, секунды совпадают, но отметки отличаются очень небольшими значениями.
Я подозреваю, что происходит, что, когда я получаю значение StartDateTime
для _uneditedEvent
, он снова возвращает DateTime.Now
что еще впереди с точки зрения тиков.
Есть ли в любом случае, я могу установить свою вторую переменную равной точным свойствам первых переменных (ссылка).
Я сделал подобноевещь в Objective-C, которая имеет понятие изменчивости и неизменяемости.Хотя это, вероятно, неправильный синтаксис, я мог бы сделать что-то вроде StartDateTime = [_eventStartDate Copy]
, что дало бы мне клон этой переменной.
Любые идеи о том, как я могу заставить это работать, на данный момент мне пришлось отключитьдата подтверждения.