Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: q 28. 04. 2012, 21:19:04

Název: Jak spočítat rozdíl v zadaném čase
Přispěvatel: q 28. 04. 2012, 21:19:04
Potřebuju spočítat rozdíl v zadaném čase.
Když např. zadám počáteční čas 15:30 a koncový čas 16:05, chci dostat výsledek 35 minut, nebo 2100 sekund (to je mi jedno). Potřebuju mít ošetřený přechod přes půlnoc: 23:50 0:20 = 30 minut. Na vstupu mě zajímají jenom hodiny a minuty.

Kód: [Vybrat]
$ rozdilCasu 15:30 16:05
35
$

Napadlo mě použít date +%s ale to bere i den.

Existuje neco hotoveho, nebo si to musim napsat sam?
Název: Re:Jak spočítat rozdíl v zadaném čase
Přispěvatel: kubbing 28. 04. 2012, 22:08:29
NSDate a NSDateComponents (ObjC na Macu).
Název: Re:Jak spočítat rozdíl v zadaném čase
Přispěvatel: heh 28. 04. 2012, 23:25:09
Kód: [Vybrat]
#include <stdio.h>
#define DAY_MINS

int main( int argc, char * argv[]){
int h,m,i,a,b,x;
if (argc<3)return -1;
for (i=1;i<=2;i++){
sscanf(argv[i],"%i:%i",&h,&m);
b=a;
a=m+60*h;
}
if (a>b){x=a-b;} else {x=60*24+a-b;}
printf("%u\n",x);
return 0;
}
Název: Re:Jak spočítat rozdíl v zadaném čase
Přispěvatel: lobo 29. 04. 2012, 00:11:58
TimeSpan ts = date1.Subtract(date2);
Název: Re:Jak spočítat rozdíl v zadaném čase
Přispěvatel: qazasd 29. 04. 2012, 02:08:46
Quick & Dirty ...

Kód: [Vybrat]
qazasd@komp:~$ ./rozdilCasu 15:30 16:05
35
qazasd@komp:~$ cat rozdilCasu
#!/bin/bash
echo $1 $2 | tr ':' ' ' | awk '{b=$1*60+$2; e=$3*60+$4; if(e<b) e+=24*60; print e-b}'