Obliczenia na datach

0

Jak obliczyc jaka data (w postaci dzien, godzina, minuta, sekunda) byla przed 1 dniem, 38 godzinami, 5 minutami i 7 sekundami ??

:)

0

Przelicz wszystko na sekundy odejmij, przelicz z powrotem i heyah

// Joke [niewinnosc]

A tak serio to zrób z tego słupek:
na razie na samej godzinie:

13:20:16    // godzina, kóra jest teraz  (odjemna)

-0125 // odejmowana wartość (odjemnik)

                   51   // pożyczamy od wartości z lewej strony (pamiętając, że 1min = 60 s)


13:20:16    

-0125

          57:51   <span style="color: darkblue">// znowu musimy pożyczyć ( j/w ) :d  od 20 pożyczyliśmy wcześniej 1 czyli teraz jest 19-22 , czyli (po pożyczeniu) 79-22 czyli 57</span>


13:20:16    

-0125

1151 // pożyczyliśmy jeden od 13 i teraz jest 12-01 czyli 11

czyli 1 godzinę 22 minuty 25 sekund temu była 1151

////*teraz dorzucę dni i miesiące *///

081316 // po kolei: miesiąc (tu sierpień), dzień (siódmy), godzina, minuta, sekunda
-000125

        23:11:58:51     <span style="color: darkblue">// od siedmiu nie odejmiemy 15 więc pożyczamy (<span style="color: red">UWAGA! tym razem pożyczamy 31, gdyż tyle dni ma sierpień.</span> Gdyby to był luty to dodatkowo trzeba by było sprawdzić czy rok przestępny)  czyli 07+31-15 = 23</span>

081316
-000125 // zero na początku oznacza, że nie odejmujemy miesięcy

071151 // pożyczyliśmy 1 od 08 czyli mam 7

############# #PODSUMOWANIE# #############

Mamy datę 07br (ort! roku, bo przyjmujemy, że rok jest ten sam)
oraz godzinę 1316
15 dni 1 godznę 22 minuty i 25 sekund temu był 23 lipca 1151 , co przekazuje zapis br2358:51

Myślę, że wszystko jest jasne. Pozdrawiam zapraszam do kodzenia sampla [browar] Milka

0

A zamiast się tak za przeproszeniem chrzanić lepiej użyć typu TDateTime, który można spokojnie odejmować i dodawać.

Np.

Label1.Caption:=DateTimeToStr(Now-(1{dni}+EncodeTime(18{h},5{m},7{s},0{ms})));

zmieniłem 38 na 18 żeby było z sensem (h<24). Jak musi być 38 h to wstaw 38 mod 24 do godzin i dodaj 38 div 24 do dni.

Polecam też liczne wbudowane w Delphi (głównie w moduł DateUtils) procedury i funkcje operujące na datach i czasach.

0

Miałem wene twórczą [pisze]

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