/*
Nome: Mario
Cognome: Montanari

Gestire punti temporali costituiti di ore, minuti e secondi
prendendo spunto dall'esercizio 3 elaborare una serie di funzioni 
*/

#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iomanip>

#define MINIMO_ORE 0
#define MASSIMO_ORE 59
#define MINIMO_MINUTI 0
#define MASSIMO_MINUTI 59
#define MINIMO_SECONDI 0
#define MASSIMO_SECONDI 59

using namespace std;

typedef struct {
	int ore;
	int minuti;
	int secondi;
} puntiTemporali;

puntiTemporali riempi();

int main(void) {
	srand(time(NULL));
	puntiTemporali tempo = riempi();
	
	cout << setw(2) << setfill('0') << tempo.ore << ":" << setw(2) << setfill('0') << tempo.minuti << ":" << setw(2) << setfill('0') << tempo.secondi << endl;
	
	return 0;
}

puntiTemporali riempi() {
	puntiTemporali tempo;
	tempo.ore = rand() % (MASSIMO_ORE - MINIMO_ORE + 1) + MINIMO_ORE;
	tempo.minuti = rand() % (MASSIMO_MINUTI - MINIMO_MINUTI + 1) + MINIMO_MINUTI;
	tempo.secondi = rand() % (MASSIMO_SECONDI - MINIMO_SECONDI + 1) + MINIMO_SECONDI;
	
	return tempo;
}