2016-04-30 10 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; 

StartDateDatePickerで、TimeStartTimePicker(取得のみ時間のカスタムコントロール)です。

私はGoogle Calendar APIのためのイベントを作成すると、私はそうのようにそれを宣言します。

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

あなたは、私は2つのオブジェクトの結合によってDateTimeオブジェクトを作成することはできません見ることができますどのように。どうすればこの結果を達成できますか?

答えて

2

DateTime.Addメソッドを使用すると、TimeSpanを既存のDateTimeに追加できます。

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

それともジョンが述べたように、あなただけの二つの値を追加することができます。それは、日時とTimeSpanの値を受け入れる2を追加し、Aを返すDateTime overrides the + operatorので

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

を(これが可能です新しいDateTime。)

+2

または単に演算子 'eventD.StartDate + eventD.StartTime'を使用してください。 –

+0

@Dillinger私はあなたのコードの一部だけをコピーしましたが、投稿した他のものはまだ必要です。私の小さな変更は構文エラーを引き起こすべきではありません。 –

+0

ありがとう@ジョンは、DateTimeも返すことに気付かなかった。 –

関連する問題