PDA

Visualizza la versione completa : [C] Minuti fra due ore


jaso
29-11-2008, 15:26
ciao

vorrei fare un programma che dato in intresso due ore per esempio: 16:35 e 19:23
mi restituisca i minuti che intercorrono fra le due ore date..

come posso fare??

oregon
29-11-2008, 15:36
Originariamente inviato da jaso
come posso fare??

Intanto devi dire con quale linguaggio (come da regolamento di questo forum), e naturalmente, deve essere un linguaggio che conosci ...

jaso
29-11-2008, 15:43
scusa, hai ragione.

il linguaggio è il C ma penso che bastino due cicli di for per fare questo.. e il for è uguale su tutti i linguaggi.. pressochè...

però mi confondo perchè qui non si conta in base 10.

ciao

MacApp
29-11-2008, 15:50
Usa le apposite funzioni di libreria.
Considera anche che due volte all'anno, in alcune nazioni, tra cui l'Italia, c'e' il cambio ora legale-solare.

XWolverineX
29-11-2008, 15:51
Data1 = 16.30
Data2 = 18.45



Minuti = abs((Data2.Ore - Data1.Ore) * 60+(Data2.Minuti - Data1.Minuti))


(18-16) * 60 + 15 = 135 minuti

oregon
29-11-2008, 15:51
Il linguaggio e' obbligatorio da regolamento ...

Niente cicli ...

Trasforma i due orari in minuti e fai la differenza ... ovvero calcola

19 x 60 + 23 => 1163

e

16 x 60 + 35 => 995

e poi

1163 - 995 => 168

che sara' la differenza in minuti che cerchi ...

jaso
29-11-2008, 17:04
grazie, il problema era molto semplice...

#include <stdio.h>

int main(void);
void help(void);
void get_time(int* ore_ptr,int* min_ptr);
void ore2min(int ora, int min, int* tot_min);
void get_min(int tot_min_i, int tot_min_f);

int main(void)
{
int ora_i;
int min_i;
int tot_min_i;

int ora_f;
int min_f;
int tot_min_f;

int exit;

help();

while(exit!=-1)
switch(getchar())
{
case 'c':
get_time(&ora_i,&min_i);
get_time(&ora_f,&min_f);

ore2min(ora_i,min_i,&tot_min_i);
ore2min(ora_f,min_f,&tot_min_f);

get_min(tot_min_i,tot_min_f);
break;

case 'q':
exit=-1;
break;
}

return 0;
}

void help(void)
{
printf("c - Calcola\n"
"q - quit\n");
}

void get_time(int* ore_ptr,int* min_ptr)
{
printf("\nInsert h>");
scanf("%d",ore_ptr);

printf("Insert m>");
scanf("%d",min_ptr);
}

void ore2min(int ora, int min, int* tot_min)
{
*tot_min=ora*60+min;
}

void get_min(int tot_min_i, int tot_min_f)
{
printf("minuti = %d\n",tot_min_f-tot_min_i);
}

Loading