Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Cómo crear un fichero .ics y que tenga en cuenta el horario de verano?

Estas en el tema de ¿Cómo crear un fichero .ics y que tenga en cuenta el horario de verano? en el foro de .NET en Foros del Web. Hola a todos, Estoy creando un fichero .ics en C# para adjuntarlo en un email y que el destinatario pueda agregarlo a su Outlook. El ...
  #1 (permalink)  
Antiguo 31/03/2015, 08:52
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 14 años, 4 meses
Puntos: 8
¿Cómo crear un fichero .ics y que tenga en cuenta el horario de verano?

Hola a todos,
Estoy creando un fichero .ics en C# para adjuntarlo en un email y que el destinatario pueda agregarlo a su Outlook. El problema que tengo es que cuando cambiamos al horario de verano (en España), la fecha que marca como "date start" es una hora posterior a la hora del evento y esto lleva a confusión al usuario.
¿Hay alguna forma de solucionar esto?
El código que tengo es el siguiente:
Código:
Date startDate = "2015-03-31 13:00:00";
Date endDate = "2015-03-31 13:30:00";
string timezone = "1";
string DateFormat = "yyyyMMddTHHmmssZ";
string s = startDate.AddHours(-1 * (double.Parse(timezone))).ToString(DateFormat);
string e = endDate.AddHours(-1 * double.Parse(timezone)).ToString(DateFormat);

string iCal = string.Format(@"BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
ORGANIZER:MAILTO:{0}
DTSTART:{1}
DTEND:{2}
LOCATION:{3}
UID:{4}
DTSTAMP:{4}
SUMMARY:{5}
DESCRIPTION:{6}
PRIORITY:5
CLASS:PUBLIC
END:VEVENT
END:VCALENDAR", email, s, e, location, DateTime.Now.AddHours(double.Parse(timezone)).ToUniversalTime().ToString(DateFormat), summary, description);
En horario de invierno aparece correctamente, pero en horario de verano la fecha de inicio para este caso (una vez abierto el .ics con outlook) aparece: "2015-03-31 14:00:00" y la fecha de fin "2015-03-31 14:30:00".
Por el momento lo he solucionado poniendo en la descripción una nota que indica que no se ve reflejado el horario de verano, pero esto no es óptimo.

¿Alguien me puede ayudar?
Muchas gracias de antemano.

Etiquetas: c#, calendario, ics
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:31.