J'utilise C sur Unix. Le programme affiche l'heure et j'essaie de comprendre comment compenser l'heure actuelle en minutes et en heures.Comment faire des drapeaux de décalage d'heure et de minute en programmation C
Cette partie du code
while ((let = getopt(argc, argv, "alo:vh")) != -1) {
switch (let) {
case 'o': offset = atoi(optarg); break; }
et plus tard dans cette partie:
void clock(int sig, int time_expires)
{
time_t now;
struct tm *dateinfo;
(void) time(&now);
now = now + offset;
dateinfo = localtime(&now); }
un Makes -o offset, qui compense l'heure actuelle par un certain nombre de secondes. Par exemple, -o590 compenserait l'heure actuelle de 590 secondes. J'essaye de comprendre comment faire la même chose seulement avec un drapeau -h qui décale l'heure d'un certain nombre d'heures (comme -h6 compense le temps de 6 heures) ou par un drapeau -m qui Compense le temps en minutes.
J'ai essayé de diviser le drapeau -o actuel par 60 ou 360 mais cela ne fonctionne pas. Quelqu'un peut-il me pointer dans les bonnes directions ici?
«J'ai essayé de diviser le drapeau -o actuel par 60 ou 360 mais cela ne fonctionne pas ". S'il vous plaît soyez plus précis. Montrez le code exact que vous avez essayé et décrivez de quelle manière il ne fonctionne pas. – kaylum
Le paramètre par défaut est en secondes. Pourquoi diviser? Vous devriez multiplier par 60 pour les minutes et 3600 pour l'heure. Donc '-m1' est en fait équivalent à' -o60' et '-h1' est' -o3600'. – alvits