2016-04-30 112 views
3

我使用Google Calendar API,现在我已经创建了一个名为GEVENT类,这是结构:如何从DateTime和TimeSpan类型创建DateTime对象?

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对象。我怎样才能达到这个结果?

回答

2

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

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

或者像乔恩说,你可以添加两个值:

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

(这是可能的,因为DateTime overrides the + operator它接受一个DateTime和TimeSpan值,增加了两个,并返回。新的日期时间。)

+2

或者只使用运算符:'eventD.StartDate + eventD.StartTime'。 –

+0

@Dillinger我只复制了你的部分代码,但你仍然需要你发布的其他东西。我的小改动不应该导致语法错误。 –

+0

谢谢@Jon,没有意识到会返回DateTime。 –