private Java.Util.Calendar GetCalendar() { var calender = new Java.Util.GregorianCalendar(); if (m_dateTime.Ticks == 0) { // always use UTC for DateTime.MinValue, this is probably not correct. calender.TimeZone = Java.Util.TimeZone.GetTimeZone("UTC"); calender.TimeInMillis = DateTime.MinValueJavaMillies; } else { Java.Util.TimeZone tz; if (m_offsetMinutes == 0) { tz = Java.Util.TimeZone.GetTimeZone("UTC"); } else { int tzIdVal = (((m_offsetMinutes / 60) * 100) + m_offsetMinutes % 60); string tzId = string.Format("GMT{0:+0000;-0000}", tzIdVal); tz = Java.Util.TimeZone.GetTimeZone(tzId); } var millis = (m_dateTime.Ticks / TimeSpan.TicksPerMillisecond) - DateTime.EraDifferenceInMs; long offsetInMs = (long)0; calender.TimeZone = tz; calender.TimeInMillis = (millis - offsetInMs); } return(calender); }
public void AddEventToCalendar(CultureInfo ci, DateTime @from, DateTime until, string name, string location) { var intent = new Intent(Intent.ActionInsert); var dateFrom = new GregorianCalendar(from.Year, from.Month - 1, from.Day, 0, 0); var dateUntil = new GregorianCalendar(until.Year, until.Month - 1, until.Day, 23, 59); try { intent.PutExtra(CalendarContract.Events.InterfaceConsts.Title, name); intent.PutExtra(CalendarContract.Events.InterfaceConsts.EventLocation, location); intent.PutExtra(CalendarContract.ExtraEventAllDay, true); intent.PutExtra(CalendarContract.ExtraEventBeginTime, dateFrom.TimeInMillis); intent.PutExtra(CalendarContract.ExtraEventEndTime, dateUntil.TimeInMillis); intent.SetData(CalendarContract.Events.ContentUri); MainActivity.Instance.StartActivity(intent); } catch (Exception) { // shht } }