2011-12-21 1 views
3

Je veux définir une variable time_t à la prochaine date/heure à 22h. Ainsi, par exemple, s'il était 23h, le paramètre time_t sera défini sur 22h le lendemain (23 heures plus tard) ou s'il est 17h, il sera défini sur 22h (dans 5 heures).C: Définir time_t à 22h suivant

Je peux penser à un certain nombre de façons de le faire (comme le calcul des secondes jusqu'aux prochaines 22 heures et l'ajout de cette valeur), mais ils se sentent tous plutôt une approche hackish. Quelle est la meilleure façon d'accomplir cela?

Répondre

7

Convertissez-le en struct tm, en utilisant localtime par exemple. S'il est passé 22 heures, ajoutez un jour. Réglez l'heure à 22 heures.

struct tm *tm; 
tm = localtime(t); 
if (tm->tm_hour >= 22) 
    tm->tm_mday++; 

tm->hour = 22; 

reconvertir à l'aide time_tmktime.

+0

Comment convertir en time_t? – Zeno

+0

@Zeno J'ai édité. – cnicutar