Forum » Programiranje » Visual basic - časovna razlika
Visual basic - časovna razlika
AtaSmrk001 ::
Pozdravljeni,
Sem popolnoma nov v programerskih vodah tako da bi prosil za pomoč.
Mi lahko prosim pomagate pri problemu izračuna časovne razlike med poljema odhod in prihod?
V bazi sta ti dve vrednosti nastavljeni kot varchar, pri vnosnem polju pa kot MaskedTextBox(Time).
Zanima me kako dobiti rezultat v SkupajUr (odhod - prihod)
Trenutno imam sledeč stavek: SkupajUrMaskedTextBox.Text = Val(OdhodMaskedTextBox.Text) - Val(PrihodMaskedTextBox.Text)
Hvala za pomoč
Sem popolnoma nov v programerskih vodah tako da bi prosil za pomoč.
Mi lahko prosim pomagate pri problemu izračuna časovne razlike med poljema odhod in prihod?
V bazi sta ti dve vrednosti nastavljeni kot varchar, pri vnosnem polju pa kot MaskedTextBox(Time).
Zanima me kako dobiti rezultat v SkupajUr (odhod - prihod)
Trenutno imam sledeč stavek: SkupajUrMaskedTextBox.Text = Val(OdhodMaskedTextBox.Text) - Val(PrihodMaskedTextBox.Text)
Hvala za pomoč
kranjcb ::
V Visual basic. NET to naridš tko.
Prvo morš spravt prihod in odhod v date al pa datetime. Pol pa uporabiš funkcijo substract.
Npr.
dim prihod as datetime
prihod=cdate(PrihodMaskedTextBox.Text)
dim odhod as datetime
odhod=cdate(OdhodMaskedTextBox.Text)
dim stUr as double
stUr=odhod.substract(prihod).totalhours
Je pa odvisno v kakšnih formatih maš prihod in odhod.
Prvo morš spravt prihod in odhod v date al pa datetime. Pol pa uporabiš funkcijo substract.
Npr.
dim prihod as datetime
prihod=cdate(PrihodMaskedTextBox.Text)
dim odhod as datetime
odhod=cdate(OdhodMaskedTextBox.Text)
dim stUr as double
stUr=odhod.substract(prihod).totalhours
Je pa odvisno v kakšnih formatih maš prihod in odhod.
Zgodovina sprememb…
- spremenil: kranjcb ()
detroit ::
mogoče pa se tudi v .net vb narest overload operatorjev
tipa
public static Time operator + (Time prihod, Time odhod)
{
//tuki narediš pač kaj odšteje minute ure bla bla
return Time
}
in stem pridobiš možnost Time + Time and so on....
p.s. ne vem kakšn class je time
tipa
public static Time operator + (Time prihod, Time odhod)
{
//tuki narediš pač kaj odšteje minute ure bla bla
return Time
}
in stem pridobiš možnost Time + Time and so on....
p.s. ne vem kakšn class je time
Skero
AtaSmrk001 ::
Hvala za odgovora, vendar se iz zgoraj navedenega ne znajdem preveč (sem totalen začetnik).
Po googlanju sem nekako ugotovil, da bi lahko uporabil tudi funkcijo datediff.
Prilagam kodo:
Dim uraPrihoda As DateTime
Dim UraOdhoda As DateTime
uraPrihoda = PrihodMaskedTextBox.Text
UraOdhoda = OdhodMaskedTextBox.Text
SkupajUrLabel1.Text = DateDiff("h", uraPrihoda, UraOdhoda)
Problem nastopi da mi računa le polne ure. Se pravi če je PrihodTextBox 12:00; OdhodTextBox 13:30 je rezultat v Label1 1.
V kolikor spremenim datediff funkcijo - interval v "m" pa je rezultat 0.
Nikakor ne morem spravit rezultata 1:30..?
Hvala za pomoč.
Po googlanju sem nekako ugotovil, da bi lahko uporabil tudi funkcijo datediff.
Prilagam kodo:
Dim uraPrihoda As DateTime
Dim UraOdhoda As DateTime
uraPrihoda = PrihodMaskedTextBox.Text
UraOdhoda = OdhodMaskedTextBox.Text
SkupajUrLabel1.Text = DateDiff("h", uraPrihoda, UraOdhoda)
Problem nastopi da mi računa le polne ure. Se pravi če je PrihodTextBox 12:00; OdhodTextBox 13:30 je rezultat v Label1 1.
V kolikor spremenim datediff funkcijo - interval v "m" pa je rezultat 0.
Nikakor ne morem spravit rezultata 1:30..?
Hvala za pomoč.
detroit ::
hehe sorry to je c# za vb nimam blage, je pa princip isti ..baje:)
in glede, da je to .net (VSE torej C# in vb se translata v intermediate language in nato naprej)si predstavljam da komot narediš operator overloading.
Stvar je taka da ti (v večini) lahko z operatorji + (- * / = == >= ipd...) operiraš samo z primitivi. in operatorji so "metode". Tako da če boš klical Žoga + Palca, bo poiskal najboljši overload za + s parametrima žoga in palca. Ker tega v osnovi ni (ker v osnovi lahko uporabljaš operatorje le na redkih data strukturah in pa primitivih) ga napišeš sam.
Mogoče je tuka kaj (nism VB literate:)
http://vbnotebookfor.net/2007/08/30/int...
in glede, da je to .net (VSE torej C# in vb se translata v intermediate language in nato naprej)si predstavljam da komot narediš operator overloading.
Stvar je taka da ti (v večini) lahko z operatorji + (- * / = == >= ipd...) operiraš samo z primitivi. in operatorji so "metode". Tako da če boš klical Žoga + Palca, bo poiskal najboljši overload za + s parametrima žoga in palca. Ker tega v osnovi ni (ker v osnovi lahko uporabljaš operatorje le na redkih data strukturah in pa primitivih) ga napišeš sam.
Mogoče je tuka kaj (nism VB literate:)
http://vbnotebookfor.net/2007/08/30/int...
Skero
Zgodovina sprememb…
- spremenil: detroit ()
tomaz_sres ::
Nulo ti vrne, ker mali m pomeni mesece pri DateDiff, za minute rabiš mali n.
Na http://msdn.microsoft.com/en-us/library...
imaš lepo razaloženo kako je s tem.
Na http://msdn.microsoft.com/en-us/library...
imaš lepo razaloženo kako je s tem.
Lep pozdrav, Tomaž Sreš, http://www.sres.si
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | VB.streamwriterOddelek: Programiranje | 994 (827) | P=LN |
» | C# problemOddelek: Programiranje | 1179 (888) | mladec |
» | vb.net: dynamic textboxOddelek: Programiranje | 1180 (1070) | saule |
» | c# undo, redo, pasteOddelek: Programiranje | 950 (850) | japol |
» | c++ & database(access)Oddelek: Programiranje | 1485 (1341) | Seadoo |