|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
[C] Da "cumolo di secondi" a "ore:min:sec": è ok?
Ho fatto questa funzioncina che segue, dovrebbe essere funzionante no?
![]() Codice:
void durata_segmento(float durata, int *ore, int *minuti, int *secondi)
{
*ore = *minuti = *secondi = 0;
if (durata <= 59)
{
*secondi = durata;
}
else
{
while (durata > 59)
{
durata = durata - 60;
++ *minuti;
if (*minuti > 59)
{
*minuti = 0;
++ *ore;
}
}
*secondi = durata;
}
printf("durata_segmento> %d:%d:%d\n", *ore, *minuti, *secondi);
}
Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 23-08-2007 alle 14:03. |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2781
|
A me sembra un po' uno spreco, ti è stato chiesto di farlo così? Altrimenti bastavano un po' di divisioni e resti...
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
![]() L'importante è che esca un formato: ore, minuti, secondi. Perchè devo inserirlo in un file MP7.XML che accetta solo le cose tipo: T00H00M00S oppure 0:0:0, insomma ste cacate qui. Se hai voglia posta la tua soluzione o i tuoi consigli, non mancherò di leggerli. Ma dovrebbe funzionare la mia no?!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 23-08-2007 alle 14:36. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma usare le funzioni standard no ?
time_t seconds = 10020103; //il numero di secondi che vuoi convertire struct tm *ptm; ptm = gmtime(&seconds); ptm->tm_hour //qui ci sono le ore ptm->tm_min //qui ci sono i minuti ptm->tm_sec //qui ci sono i secondi Ora mi sembra che vada bene gmtime... Attenzione che se vai oltre le 24 ore devi guardare anche tm_day, in alternativa le ore calcolatele a mano: seconds / 3600 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Farei così:
Codice:
void durata_segmento (float durata, int *ore, int *minuti, int *secondi)
{
long d = (long) durata;
*ore = (int) (d / 3600);
*minuti = (int) (d / 60 % 60);
*secondi = (int) (d % 60);
}
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Io sto cercando di restare fedele il + possibile al GCC.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 23-08-2007 alle 16:24. |
|
|
|
|
|
|
#7 | ||
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
Praticamente quel durata non è altro che quello che ricavavamo da qui: [C] File audio MP3: devo leggerne l'Header x saperne la lunghezza in tempo?! con la libreria MCI. Quelli erano millisecondi e quindi io li ho moltiplicati x1000 per avere i secondi. Quote:
Fosse anche 48 va bene, 96 va bene, ecc... Devo metterlo in un file MP7.XML che accetta cose del tipo: T00H00M00S oppure 0:0:0, nel MediaTime.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. Ultima modifica di Matrixbob : 23-08-2007 alle 16:29. |
||
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Ma siamo sicuri che restituisce ore, minuti, secondi?
Che ora non posso provarla, sono imbelinato nel riscrivere parti di codice.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Certo...
In un'ora ci sono 3600 secondi (60 * 60). secondi / 3600 = ore secondi / 60 = minuti totali minuti totali % 60 = minuti che non compongono un'ora intera secondi % 60 = secondi che non compongono un minuto intero |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Funziona funziona.
Siete bellissimi, ogniuno col suo stile di programmazione, di cui il mio è il + scadente. Ma spero di migliorare prima o poi, l'esperienza fa tanto.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
#14 | ||
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Quote:
|
||
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
|
|
|
|
|
|
#16 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Jul 2001
Messaggi: 9947
|
Quote:
[MP7] Produco questo documento, ma pare non valido: perchè? Non vedo specificati giorni, ma nemmeno andare oltre alle 2 cifre per numero.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<< Più largo è il sorriso, più affilato è il coltello. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:20.






















