Odečítání času   zodpovězená otázka

VB6/VBA

Dobrý den, chtěl jsem se zeptat na nějaký algoritmus nebo jednoduchý program jak odečíst časy. Zadaný čas a datum např. 00:01 12.12 2011 a druhý čas kterým budu odečítat ten první např. 00:02 výsledek bude 23:59 11.12. 2011

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Na to je funkce DateAdd.

http://www.vb6.us/tutorials/understandin...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Našel jsem si na netu nějaký kód který jsme si upravil takhle, ale pořád nemůžu přijít na to jak odečíst celý čas a ne jen hodinu ;)

Private Sub Command1_Click()

Dim FirstDate As Date

Dim IntervalType As String

Dim Number As Integer

Dim Msg

IntervalType = "h"

FirstDate = InputBox("zadej datum")

Number = InputBox("zadej hodinu")

Msg = "New date: " & _

DateAdd(IntervalType, -Number, FirstDate)

MsgBox Msg

End Sub

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To je ten první parametr - dáváte tam h, tak to odčítá hodiny. Předpokládám, že když tam dáte y, odečte to roky atd.

Mrkněte na ten odkaz, co jsem dával výše, tam jsou příklady.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Záleží co předáte za argumenty,pokud dáte jako intervaltype hodnotu "h" tak se vždy budou odčítat hodiny.Je to naprosto jasné z odkazu co Vám posílal p.Herceg.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ano to vím když tam dám "h" odečítají se hodiny, když tam dám "m" odečítají se měsíce atd... ale já potřebuji aby to odečetlo hodiny:minuty:sukundy

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak odečtěte pouze příslušný počet vteřin...pokud bude vyšší jak 60,tak už se bude jednat o minuty,vyšší jak 3600 = hodina,atd...nic složitého.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tohle nemusí vždy fungovat. Slyšel jste o přestupných sekundách? http://cs.wikipedia.org/wiki/P%C5%99estu...

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

A Vami uvedená funkcia s prestupnými sekundami počíta ? A ak mi odpustíte mierny OT, zaujímalo by ma aj, či počítajú s prestupnými sekundami metódy .NET Frameworku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano. Proto se na to používají funkce a neodčítáme 3600 sekund.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pro Tomáše Hercega

Zaujal mně váš příspěvek o přestupné vteřině.

Musím se přiznat, že tento termín slyším poprvé. Z uvedených grafů na výše uvedené stránce je patrné, že tato událost neprobíhá lineárně ani logaritmicky - existuje nějaká funkce z které se dá vyčíst kdy k dané události dojde ?

Luboš

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Kdybyste se podíval na tu stránku, co jsem psal, tak byste viděl, pro minutu se používá písmeno "n", je to tam nahoře vypsané v té tabulce.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste využít tzv. interní formát času, který používá Windows. Čas se převede na datový typ Double(celá část čísla určuje datum a část za desetinou čárkou určuje čas - takže např. 12 hodin = půl dne, tedy hodnota 0,5).

Vše je velice jednoduché a prosté. Váš příklad by mohl vypadat takto:

Print CDate(CDbl(CDate("12.12.2011 00:01:00")) - CDbl(CDate("00:02:00")))

Luboš

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

O tom nevím, ale každá rozumná knihovna (včetně .NET Frameworku) by s tím při výpočtech data a času měla počítat.

Jednou za čas také do Windows chodí aktualizace, která tohle upravuje a aktualizuje.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Popravdě jsem o tomto termínu slyšel v tuto chvíli poprvé a to pracuji v odvětví reportingu,kde se s daty a datumy obecně pracuje na denní bázi a nikdy jsem to neřešil.Tudíž nepředpokládám a nedávám této vteřině velkou váhu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Však ono se to většinou nestává. Jen jsem poukazoval na to, že minuta nemusí mít vždy 60 sekund a pokud na přičítání minut existuje funkce, tak je vhodné ji použít, právě kvůli těmto nuancím.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Určitě souhlas.Jen je otázkou zda s tím metody .Net fw počítají a pracují

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

cituji: ...a nedávám této vteřině velkou váhu

JJ. Věřím, že když pracujete s časem tak úhlové jednotce velkou váhu nedáváte. :-))

Mirek

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback