La prochaine date/heure à laquelle une heure avancée de la transition se produit

Je voudrais écrire (ou s'il existe déjà) une fonction en C# qui retourne la date/heure de la prochaine transition d'heure d'été donné un Système.TimeZoneInfo objet et un particulier "comme de" l'heure dans le fuseau horaire. Le temps retourné doit être dans la zone de temps. La fonction que je veux a cette signature:

public DateTime GetNextTransition(DateTime asOfTime, TimeZoneInfo timeZone)
{
    //Implement me!
}

Par exemple, si je passe dans le "Eastern Standard Time" TimeZoneInfo objet, et 1/21/2011@17:00 comme le "asOfTime", je m'attends à cette fonction de retour 3/13/2011@2:00.

La Système.TimeZoneInfo.TransitionTime structure semble avoir toutes les informations dont j'ai besoin, mais, idéalement, il y aurait une sorte de mécanisme intégré pour convertir la règle en date réelle. Quelqu'un a des suggestions?

L'heure d'été est tout à fait l'animal...garder à l'esprit des lieux comme la majorité de l'Arizona (certaines réserves Indiennes honneur de l'heure d'été) ne tiennent pas compte de l'heure d'été. Notre fuseau horaire reste MST et donc nous n'avons pas d'ajuster notre temps...alors que dire de Denver serait transition vers MDT et d'ajuster leur temps.
Utilisation Noda Temps et de voir ce thread sur la façon d'obtenir des périodes de transition de l'utiliser.

OriginalL'auteur Stuart Lange | 2011-01-21