如何从 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;
其中 StartDate
是 DatePicker
,TimeStart
是 TimePicker
(仅获取小时的自定义控件)。
当我为 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。)
我正在使用 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;
其中 StartDate
是 DatePicker
,TimeStart
是 TimePicker
(仅获取小时的自定义控件)。
当我为 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。)