• 1
  • 2
2013-11-15, 22:42
  #13
Medlem
Citat:
Ursprungligen postat av alef-noll
Så här kanske:

Kod:
#include <limits.h>

#define ONE_DAY_OF_SECS (24UL * 60UL * 60UL)

#if UINT_MAX >= 4294967295U
typedef unsigned int uint32;
#else
typedef unsigned long uint32;
#endif

uint32 start, stop;

/* konvertera en sträng till `start` */
/* konvertera en annan sträng till `stop` */
if (stop < start) {
    stop += ONE_DAY_OF_SECS;
}
/* konvertera `stop - start` till en sträng */

Öh... Va????????
Citera
2013-11-15, 23:14
  #14
Medlem
christerys avatar
Citat:
Ursprungligen postat av Litefragor
Öh... Va????????
Skriv kod där han har skrivit kommentarerna.

Det står precis vad du ska göra.
Citera
2013-11-16, 16:04
  #15
Medlem
Citat:
Ursprungligen postat av christery
Skriv kod där han har skrivit kommentarerna.

Det står precis vad du ska göra.

Fan skriver han massa nonsens för, tror han att han är häftig eller? Syftar på detta:

Kod:
#include <limits.h>

#define ONE_DAY_OF_SECS (24UL * 60UL * 60UL)

#if UINT_MAX >= 4294967295U
typedef unsigned int uint32;
#else
typedef unsigned long uint32;
#endif

uint32 startstop
Citera
2013-11-16, 16:31
  #16
Medlem
christerys avatar
Citat:
Ursprungligen postat av Litefragor
Fan skriver han massa nonsens för, tror han att han är häftig eller? Syftar på detta:

Kod:
#include <limits.h>

#define ONE_DAY_OF_SECS (24UL * 60UL * 60UL)

#if UINT_MAX >= 4294967295U
typedef unsigned int uint32;
#else
typedef unsigned long uint32;
#endif

uint32 startstop

Han typedeffar och skapar sen variablerna efter vad du kompilerar i för miljö. Ryms det i en int så behövs ju inte en long

Citat:
För de flesta heltalsberäkningar används int, som vanligen är samma storlek som datorns ordtyp, typiskt 16 (garanterad minsta storlek), 32 eller 64 bitar. Ibland används varianter av int för data som behöver mer eller mindre utrymme. Datatypen short eller short int är minst 16 bitar, och long eller long int är minst 32, ofta 64 bitar.
http://sv.wikipedia.org/wiki/C_%28pr..._och_datatyper

Och undviker magic numbers genom att räkna ut antal sekunder på ett dygn.

Fiffgt va?
Citera
2013-11-17, 07:09
  #17
Medlem
Citat:
Ursprungligen postat av Uran233
Det som har hänt är ju eg 0:23:00:00 till 1:01:00:00 , dvs en dag extra. Om timme A är större än timme B kan du ju addera 24 timmar till B.

Läs och begrunda http://en.wikipedia.org/wiki/Modular_arithmetic (som ju även just kallas klockaritmetik)


Håller med, du måste hålla reda på modulus. 1:01:00:00 var ett urmärkt alternativ.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in