如何从 DateTime 和 TimeSpan 类型创建 DateTime 对象?

How to create a DateTime object from DateTime and TimeSpan type?

我正在使用 Google Calendar API,现在我创建了一个名为 GEvent 的 class,这是结构:

public class GEvent
{
    public DateTime StartDate { get; set; }
    public TimeSpan StartTime { get; set; }
    public DateTime EndDate { get; set; }
    public TimeSpan EndTime { get; set; }
}

其中 StartDate 是事件开始的日期,StartTime 是当天的小时数。

我这样填写这个字段:

Calendar.GEvent eventD = new Calendar.GEvent();

eventD.StartDate = StartDate.SelectedDate.Value;
eventD.StartTime = TimeStart.SelectedTime.Value;

其中 StartDateDatePickerTimeStartTimePicker(仅获取小时的自定义控件)。

当我为 Google Calendar API 创建事件时,我这样声明它:

 Event myEvent = new Event
{
    Start = new EventDateTime()
    {
            DateTime = new DateTime(eventD.StartDate, eventD.StartTime),
            TimeZone = "Europe/Rome"
    }
    ... 
};

您怎么看我不能通过合并两个对象来创建 DateTime 对象。我怎样才能达到这个结果?

您可以使用 DateTime.Add 方法将 TimeSpan 添加到现有的 DateTime

Event myEvent = new Event
{
    Start = new EventDateTime()
    {
        DateTime = eventD.StartDate.Add(eventD.StartTime)),
        TimeZone = "Europe/Rome"
    }
}

或者如 Jon 所述,您可以将两个值相加:

...
DateTime = eventD.StartDate + eventD.StartTime,
...

(这是可能的,因为 DateTime overrides the + operator。它接受 DateTime 和 TimeSpan 值,将两者相加,returns 一个新的 DateTime。)