从Google日历导入时,D日历日期有错误的日期?
我正在使用D日历,但我不确定,但我有一个奇怪的问题。从Google日历导入时,D日历日期有错误的日期?
我基本都为我的代码
iCalendar iCal = iCalendar.LoadFromStream(file.InputStream);
foreach (Event evt in iCal.Events)
{
DateTime start = evt.DTStart.Date;
DateTime end = evt.DTEnd.Date;
// loop through it and get values.
}
然而,当我从谷歌导入台历挂历结束日期搞砸对一些我进口的东西。
例如像我有这个
标题:不应该显示 当:孙老师,3月21日(全天)。
然而,当我将它导入时,我说开始日期是21日,但结束日期是22日,当它应该是21日。
不知道发生了什么事。
我不太清楚我可以给你们什么其他信息。
我做了一个cmd行应用程序,并将.ics文件放入其中。如果有人知道一个好地方,我可以上传它,你们可以看到我的意思。
这是我的命令行输出。
Start Date Of this Record
Some one day task 3/25/2010 12:00:00 AM
End Date of this Record 3/26/2010 12:00:00 AM
Start Date Of this Record
Test using quick create(bubble that shows up when clicked on date box) - 1 day t
ask 3/21/2010 12:00:00 AM
End Date of this Record 3/22/2010 12:00:00 AM
Start Date Of this Record
Spans 2 days 3/30/2010 12:00:00 AM
End Date of this Record 4/1/2010 12:00:00 AM
如果是全天事件,我认为结束时间将00:00:00
第二天,又名12:00:00 AM
。这是不是你所看到的时代?
你给出的最后一个例子确实是两天(3月有31天),并且是正确的。您看到的输出与全天事件的定义相关。它从上午12:00开始,到第二天中午12:00结束。
如果你想全天活动,忠实地在同一天只停留,你可以不喜欢一个检查:
if (((end - start) == TimeSpan.FromDays(1.0))
&& (start.Hour == 0 && start.Minute == 0))
{
end = end - TimeSpan.FromSeconds(1.0); // now 23:59:59 same day as start
}
Chobo,
如果你想创建全天事件在DDay.iCal它真的很简单:
event.IsAllDay = true;
这就是你想要完成的?诚实地说,你的问题并不是你已经告诉我们的那么清楚。
感谢, -Doug
你似乎在其他论坛上了解它lol。 – chobo2 2010-03-27 05:44:31
您需要设置开始和结束的属性和IsAllDay =真同一日期:预期
var evt = iCal.Create<DDay.iCal.Event>();
evt.Start = new iCalDateTime(myEvent.Date);
evt.End = new iCalDateTime(myEvent.Date);
evt.IsAllDay = true;
否则IsAllDay属性不起作用。请检查此属性的执行情况:
virtual public bool IsAllDay
{
get { return !Start.HasTime; }
set
{
// Set whether or not the start date/time
// has a time value.
if (Start != null)
Start.HasTime = !value;
if (End != null)
End.HasTime = !value;
if (value &&
Start != null &&
End != null &&
object.Equals(Start.Date, End.Date))
{
Duration = default(TimeSpan);
End = Start.AddDays(1);
}
}
}
不,它只是设置为12:00:00(请参阅我的编辑输出)。 – chobo2 2010-03-23 19:49:44
如果您不包含AM/PM信息,则与00:00:00相同。 – user7116 2010-03-24 14:50:49
哦。所以这是ics标准所需要的或者我觉得很奇怪的东西。对于我的日历,当有人把所有的日子,我喜欢上午12:00至下午11:30(他们只能选择一半和一小时增量)。 – chobo2 2010-03-25 15:48:02