Avatar billede giversen Nybegynder
24. september 2000 - 14:08 Der er 7 kommentarer og
2 løsninger

Formatering af tid

Hej

I et perl script har jeg en variabel $tidsfor som indeholder forskellen mellem to kald til time() på 2 forskellige tidspunkter. Der kan værer vilkårligt langt imellem disse to kald, alt fra 1 sek til 48+ dage.
Dette vil jeg gerne have formateret så det kan skrive ud i følgende format: timer(h) minuter(h) sekunder(s)
(fx. 15h 35m 17s)
Hvordan gør man det?
Avatar billede erikjacobsen Ekspert
24. september 2000 - 16:43 #1
Om der er noget indbygget ved jeg ikke, men prøv dette, hvis du har forskellen i $t:

$sek = $t % 60;
$min = int($t / 60);
$tim = int($min / 60);
$min = $min % 60;
print \"$tim h, $min m, $sek s\\n\";
Avatar billede giversen Nybegynder
25. september 2000 - 09:49 #2
OK, sådan kan man jo gører det :o)
Men er der ikke en indbygget funktion eller et modul til det?
Avatar billede smudger Novice
26. september 2000 - 16:47 #3
der findes en funktion der hedder:

strftime -string format time...¨

Den ligger i modulet POSIX. Skriv i starten af dit Perlscript:

use POSIX qw(strftime);

så skulle du have adgang til den.

så kan du gøre således:

print strftime \"%Y-%m-%d %H:%M:%S\", localtime(time);

Istedet for time, propper du bare din variable ind... Det skulle være det..!
Avatar billede Lasse Novice
26. september 2000 - 22:27 #4
hmmm, det var sørme retfærdigt gjort mod smudger... han kommer med et bedre forslag og alligevel får han ikke noget for det. Ja, det er ikke retfærdighed der præger dette sted !!!

Avatar billede Lasse Novice
26. september 2000 - 22:32 #5
ikke noget for det = mindre end ham den anden, som havde et svar du ikke syntes var godt nok!!!
Avatar billede erikjacobsen Ekspert
26. september 2000 - 22:51 #6
Nu tror jeg såmænd ikke (har dog ikke prøvet) at smudgers er bedre, for jeg tror
ikke at strftime vil skrive et antal timer, der er større end 23. Hvis man kan have
mere end 48 dage bliver tallet nok større. smudgers egner sig fint til datoer (hmm den
skriver nok altid et år ud, mindst 1970), men ikke til tidsforskelle.
Avatar billede Lasse Novice
27. september 2000 - 07:29 #7
okey dokey... :-)
Avatar billede giversen Nybegynder
06. oktober 2000 - 12:15 #8
Jeps, jeg har haft nogle problemer med strftime og flere dage. Den løsning erikjacobsen gav virker med flere dage.
Avatar billede giversen Nybegynder
06. oktober 2000 - 12:16 #9
strftime - fin til datoer og ik så go til tidsforskelle efter min mening
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester