Czas większy niż 24 godziny

0

Używam zmiennej TDataTime ale nie jest to chyba odpowiednia zmianna gdyż mój program ma obliczać miesięczny czas pracy.
Gdy do zmiennego w/w typu chce przypisac wartosc np. 176 godz., krzyczy mi calkiem prawidlowo ze jets to błędny format godziny.
Czy istnieje jakas zmienna okreslająca nie tyle godziny dobowe ile czas. Chodzi o to aby moc wykonywac operacje dodawania, odejmowania na czasie.

0

takie dane to się w zwykłym Integer trzyma

0

Jest kilka możliwości, a oto kilka z nich :

godziny : Integer;
minuty : Integer;

fgodziny : real;
fminuty : double;

fixgodziny : Fixed;

Przykład obliczeń:
godziny := 8+8+8; // trzy dni robocze
minuty := godziny*60; // trzy dni robocze w minutach (wyrażone w roboczo-minutach [rotfl] )

Bardziej precyzyjne obliczenia:
fgodziny := 8.0 + 8.0-0.25 + 8-0.15-0.10; // trzy dni robocze z uwzględnieniem dwóch spóźnień i jednej ponadnormatywnej przerwy na papierosa :)

0

Nie rozumiem Cię do końca. Jak chcesz trzymać ilość godzin to bierzesz zwykłą liczbę całkowitą i viola' - zrobione; a jak chcesz liczyć w systemie dniowym, godzinowym, dobowym, możesz używać TDateTime wraz z jego bogatymi możliwościami.

0

SZCZAWIK to prosze pokaz mi jak obliczyc w TDateTime:
176 godz - 6 godz 30 min ?
A o takie wyniki pytałem
jezeli chcesz zrobic to w integer to wyjdzie tobie 169,7 a powinno 169 godz 30 min

0
  1. Nie wiem jakim cudem wyszło ci Integer = 169,7
  2. Nie powiedziałeś, z jaką dokładnością chcesz liczyć - więc wywnioskowałem, że na godzinach
  3. Skoro na minutach, to możesz to liczyć jako Integer
var t:integer;
begin
t:=10000; //ileśtam minut
Caption:='Godziny: '+inttostr(t div 60)+', minuty: '+inttostr(t mod 60);
end;
  1. Jeśli chcesz liczyć w TDateTime - proszę bardzo
var y2k:TDateTime;
begin
y2k:=EncodeDateTime(2001, 1, 1, 0, 0, 0, 0);
Caption:='Godziny: '+inttostr(HoursBetween(Now(), y2k))+', minuty: '+inttostr(MinutesBetween(Now(), y2k) mod 60);
end;
  1. Trochę skromności - ludzie patrzą

:|

1 użytkowników online, w tym zalogowanych: 0, gości: 1