日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

导入日历 ICS文件 完整版(原创)---解析icS文件

發布時間:2023/12/29 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 导入日历 ICS文件 完整版(原创)---解析icS文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???

4月21日 15更新???加了注釋, 只留下導入的代碼了(解析ICS)?

?

因項目需要,這幾天寫了個日歷導入導出代碼 (ICS文件)

?

與大家探討探討;

?

轉載 請注明出處? liveTea http://www.cnblogs.com/zhegebucuo

?

?

?

Code
Test?and?please?not?to?delete.#region?Test?and?please?not?to?delete.?
????????
public?override?void?VerifyRenderingInServerForm(Control?control)
????????
{
????????????
//base.VerifyRenderingInServerForm(control);
????????}

????????
private?ArrayList?calendarResult?=?new?ArrayList();//?結果
????????private?ScheduleEntity?seResult?=?new?ScheduleEntity();//日歷實體,包括提醒實體,提醒是多重的??所以是個list
?
??????
//解析日歷格式?時間
????????private?DateTime?getDateTime(string?tmp)
????????
{
????????????
//20090406T235959000Z
????????????string?value?=?"";
????????????value?
=?tmp.Substring(0,?4)?+?"-"?+?tmp.Substring(4,?2)?+?"-"?+?tmp.Substring(6,?2)?+?"?"?+
????????????????tmp.Substring(
9,?2)?+?":"?+?tmp.Substring(11,?2);
????????????
return?Convert.ToDateTime(value);
????????}


????????
private?List<RemindParamEntity>?awokeList?=new?List<RemindParamEntity>();
????????
private?RemindParamEntity?RemindParam?=?new?RemindParamEntity();
????????
private?void?caseCalendar(string?tmp,string?value?)
????????
{
????????????
if?(tmp?==?"BEGIN")
????????????
{
????????????????alarmBegin?
=?true;
????????????????RemindParam?
=?new?RemindParamEntity();
????????????????
return;
????????????}

????????????
else?if?(tmp?==?"END")
????????????
{
????????????????awokeList.Add(RemindParam);
????????????????alarmBegin?
=?false;
????????????????
return;
????????????}

????????????
if?(alarmBegin)
????????????
{
????????????????
switch?(tmp)
????????????????
{
????????????????????
case?"ACTION":

????????????????????????RemindParam.NeedRemind?
=?1;

????????????????????????
break;
????????????????????
case?"TRIGGER":

????????????????????????RemindParam.TimeValue?
=?1;

????????????????????????
break;
????????????????????
default:
????????????????????????
????????????????????????
break;
????????????????}


????????????}

????????????
else
????????????
{
????????????????
switch?(tmp)
????????????????
{
????????????????????
case?"DTSTART":

????????????????????????seResult.BeginTime?
=?getDateTime(value);

????????????????????????
break;
????????????????????
case?"DTEND":

????????????????????????seResult.EndTime?
=?getDateTime(value);

????????????????????????
break;
????????????????????
case?"DTSTAMP":

????????????????????????
//?seResult.CreateTime?=?getDateTime(value);
????????????????????????;

????????????????????????
break;
????????????????????
case?"UID":

????????????????????????
//seResult.ScheduleID?=?1;
????????????????????????;

????????????????????????
break;
????????????????????
case?"CLASS":

????????????????????????seResult.ScheduleTypeSet?
=?value;

????????????????????????
break;
????????????????????
case?"CREATED":

????????????????????????seResult.CreateTime?
=?getDateTime(value);

????????????????????????
break;
????????????????????
case?"DESCRIPTION":

????????????????????????seResult.Brief?
=?value;

????????????????????????
break;
????????????????????
case?"LAST-MODIFIED":

????????????????????????
//seResult.CreateTime?=?getDateTime(value);
????????????????????????;

????????????????????????
break;
????????????????????
case?"LOCATION":

????????????????????????seResult.Place?
=?value;

????????????????????????
break;
????????????????????
case?"SEQUENCE":

????????????????????????
//
????????????????????????;

????????????????????????
break;
????????????????????
case?"STATUS":

????????????????????????
//;
????????????????????????;

????????????????????????
break;
????????????????????
case?"SUMMARY":

????????????????????????seResult.Summary?
=?value;

????????????????????????
break;
????????????????????
case?"TRANSP":

????????????????????????
//;
????????????????????????;

????????????????????????
break;
????????????????????
default:
????????????????????????;
????????????????????????
break;


????????????????}

????????????}

???????????
//?return?"";

????????}

????????
private?void?caseAlart(string?tmp,?string?value)
????????
{

????????}

????????
private?ArrayList?calendarArray?=?new?ArrayList();
????????
protected?void?Button2_Click(object?sender,?EventArgs?e)
????????
{
//拆分成獨立?日歷
????????????string[]?s?=?GetStopWords();
????????????
int?sLenth?=?s.Length;
????????????List
<string>?singleCalendarList=?new?List<string>();
????????????
bool?calendarBegin?=?false;
????????????
for?(int?i?=?0;?i?<?sLenth;?i++)
????????????
{
????????????????
if?(s[i]?==?"BEGIN:VEVENT")
????????????????
{
????????????????????calendarBegin?
=?true;
????????????????????singleCalendarList
=new?List<string>();
????????????????????
//singleCalendarList.Clear();
????????????????}

????????????????
else?if?(s[i]?==?"END:VEVENT")
????????????????
{
????????????????????calendarArray.Add(singleCalendarList);
????????????????????calendarBegin?
=?false;
????????????????}

????????????????
else?if(calendarBegin)
????????????????
{
????????????????????singleCalendarList.Add(s[i]);
????????????????}

????????????????
????????????}

????????????doWork(calendarArray);
????????????
????????}

????????
private?void?doWork(ArrayList?a)
????????
{
????????????
//separate?calendar
?????????????List<string>?calendar?=?new?List<string>();
????????????
int?len?=?a.Count;
????????????
for?(int?i?=?0;?i?<?len;?i++)
????????????
{
????????????????calendar?
=?(List<string>)a[i];
????????????????doBusiness(calendar);
????????????}

????????????
//to?do?ddataBase
????????}

????????
private?void?doBusiness(List<string>?L)
????????
{
????????????
//seResult?init;
????????????
//seResult.BeginTime?=?"";
????????????
//List<RemindParamEntity>?RList?=?new?List<RemindParamEntity>();
????????????
//RemindParamEntity?RParam?=?new?RemindParamEntity();
????????????
//RParam.Place?=?"Test";
???????????
//?RList.Add(RParam);
????????????seResult?=?new?ScheduleEntity();
???????????
//?seResult.RemindParamList?=?RList;
???????????
//?;
????????????
//singel?calendar?business
????????????
//wokeList?=?true;
????????????foreach(string?calendar?in?L)
????????????
{
????????????????
string[]?subChild?=?calendar.Split(':');
????????????????
//if?(subChild[0]?==?"BEGIN:VALARM")
???????????????
//?{
???????????????
//?}
????????????????
//else
???????????????
//?{
????????????????????caseCalendar(subChild[0],?subChild[1]);
???????????????
//?}
????????????}

????????????seResult.RemindParamList?
=?awokeList;
????????????calendarResult.Add(seResult);
????????????
//clear
????????????awokeList?=?new?List<RemindParamEntity>();

????????????
//wokeList?=?false;
????????}

????????
#endregion

?

?

?

轉載于:https://www.cnblogs.com/zhegebucuo/archive/2009/04/20/1439810.html

總結

以上是生活随笔為你收集整理的导入日历 ICS文件 完整版(原创)---解析icS文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。