» »

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č

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.

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
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č.

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...
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.
Lep pozdrav, Tomaž Sreš, http://www.sres.si


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

VB.streamwriter

Oddelek: Programiranje
12994 (827) P=LN
»

C# problem

Oddelek: Programiranje
61179 (888) mladec
»

vb.net: dynamic textbox

Oddelek: Programiranje
51180 (1070) saule
»

c# undo, redo, paste

Oddelek: Programiranje
5950 (850) japol
»

c++ & database(access)

Oddelek: Programiranje
51485 (1341) Seadoo

Več podobnih tem