DateTime.Now Назначить 2 переменные от 1 вызова - PullRequest
0 голосов
/ 17 мая 2018

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], что дало бы мне клон этой переменной.

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

...