Change the date part of a DateTime property before database record created

I have a view model in which I am storing a DateTime but in my view using a JQUERY datetimepicker, time only:

ViewModel

[DataType(DataType.Time)]
public DateTime? MondayFrom { get; set; }
[DataType(DataType.Time)]
public DateTime? MondayTo { get; set; }

As it stands, when the Create method gets called it is using todays date plus the time selected from the timepicker.

As I am not particularly concerned with the Date part of the DateTime, I want to change the day, month & year to 01/01/1900 or something less specific than the date the record was written, before the record is created, this is purely to avoid any confusion in the future.

I don't want to get bogged down on whether this is the right thing to do or not.

I'm struggling to get a handle on the Date part of the DateTime, see below:

 public void CreateClub(Club club)
        {
            foreach (var item in club.MeetingDays)
            {
                // change Date part to 01/01/1900, leave the time as is..
            }
            _repository.CreateClub(club);
        }

How might I floor the date part of the item but leave the time well alone?

Jon Skeet
people
quotationmark

Just use the TimeOfDay property to extract the time within the day, and add that to the date you want:

private static readonly DateTime BaseDate = new DateTime(1900, 1, 1);

var updatedDateTime = BaseDate + otherDateTime.TimeOfDay;

You could even write an extension method or two:

public static DateTime WithDate(this DateTime start, DateTime date)
{
    // No need to use the Date property if you already know
    // it will be midnight...
    return date.Date + start.TimeOfDay;
}

public static DateTime WithFloorDate(this DateTime start)
{
    return start.WithDate(FloorDate);
}

Of course, I'd suggest you use Noda Time where you can specify dates, times and date/time values (with or without a time zone or UTC offset0 separately, but that's a different conversation.

people

See more on this question at Stackoverflow