English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base del linguaggio C

Controllo di flusso del linguaggio C

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

Struttura del linguaggio C

File del linguaggio C

Altro C

Manuale di riferimento del linguaggio C

Programma C che calcola la differenza tra due periodi di tempo

Manuale completo di programmazione C

In questo esempio, imparerai a calcolare la differenza tra due periodi di tempo utilizzando funzioni definite dall'utente.

Per comprendere questo esempio, dovresti conoscere il seguenteProgrammazione in CArgomento:

Calcolare la differenza tra due periodi di tempo

#include <stdio.h>
struct TIME {
   int seconds;
   int minutes;
   int hours;
};
void differenceBetweenTimePeriod(struct TIME t1,
                                 struct TIME t2;
                                 struct TIME *diff);
int main() {
   struct TIME startTime, stopTime, diff;
   printf("Inserisci l'ora di inizio. \n");
   printf("Inserisci ora, minuti e secondi: ");
   scanf("%d %d %d", &startTime.hours,
         &startTime.minutes,
         &startTime.seconds);
   printf("Inserisci l'ora di arresto. \n");
   printf("Inserisci ore, minuti e secondi: ");
   scanf("%d %d %d", &stopTime.hours,
         &stopTime.minutes,
         &stopTime.seconds);
   //Differenza tra ora di inizio e ora di arresto
   differenceBetweenTimePeriod(startTime, stopTime, &diff);
   printf("\nFuso orario: %d:%d:%d - ", startTime.hours,
          startTime.minutes,
          startTime.seconds);
   printf("%d:%d:%d ", stopTime.hours,
          stopTime.minutes,
          stopTime.seconds);
   printf("= %d:%d:%d\n", diff.hours,
          diff.minutes,
          diff.seconds);
   return 0;
}
//Calcolo della differenza tra periodi di tempo
void differenceBetweenTimePeriod(struct TIME start,
                                 struct TIME stop,
                                 struct TIME *diff) {
   while (stop.seconds > start.seconds) {
      --start.minutes;
      start.seconds += 60;
   }
   diff->seconds = start.seconds - stop.seconds;
   while (stop.minutes > start.minutes) {
      --start.hours;
      start.minutes += 60;
   }
   diff->minutes = start.minutes - stop.minutes;
   diff->hours = start.hours - stop.hours;
}

Risultato di output

Inserisci l'ora di inizio.
Inserisci ore, minuti e secondi: 12
34
55
Inserisci l'ora di arresto.
Inserisci ore, minuti e secondi: 8
12
15
Fuso orario: 12:34:55 - 8:12:15 = 4:22:40

In questo programma, l'utente viene richiesto di inserire due periodi di tempo e questi periodi vengono memorizzati rispettivamente nei variabili di struttura startTime e stopTime.

Poi, la funzione differenceBetweenTimePeriod() calcola la differenza tra i periodi di tempo. Mostra i risultati dalla funzione main() senza restituirli (usandoRichiamo di riferimentoTecnologia).

Manuale completo di programmazione C