/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Dato/# [VB6]
Fra : Jens Vestergaard


Dato : 03-09-03 12:40

Folks,

Nu er jeg (også!) lige kørt fast i det der dato-skidt.

Dim d as Date
d = #09/03/2003#
.... so far so good. Det virker. Det kan jeg godt få formateret som "3.
september 2003".

Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
Dim s as String
Dim d As Date
s = "09/03/2003"
d = # & s & # 'duer ikke
d = "#" & s & "#" 'duer ikke
d = CDate(s) 'duer ikke (giver 9. marts)
d = #s# 'duer (naturligvis!) ikke

Hva' duer så?

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



 
 
Krabsen (03-09-2003)
Kommentar
Fra : Krabsen


Dato : 03-09-03 13:08


"Jens Vestergaard" <j@railsoft.dk> skrev i en meddelelse
news:3f55d326$0$83068$edfadb0f@dtext01.news.tele.dk...
> Folks,
>
> Nu er jeg (også!) lige kørt fast i det der dato-skidt.
>
> Dim d as Date
> d = #09/03/2003#
> ... so far so good. Det virker. Det kan jeg godt få formateret som "3.
> september 2003".
>
> Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
> Dim s as String
> Dim d As Date
> s = "09/03/2003"
> d = # & s & # 'duer ikke
> d = "#" & s & "#" 'duer ikke
> d = CDate(s) 'duer ikke (giver 9. marts)
> d = #s# 'duer (naturligvis!) ikke
>
> Hva' duer så?
>

Få chefen til at kigge den anden vej, dæk lærebogen til, og snyd!:

s = Mid(s,3, 2) & "/" & Left(s, 2) & "/" & Right(s, 4)
d=CDate(s)

ikke kønt, men brugbart..

mvh

Krabsen



Tomas Christiansen (03-09-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 03-09-03 13:13

Jens Vestergaard skrev:
> Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
> Dim s as String
> Dim d As Date
> s = "09/03/2003"
> d = # & s & # 'duer ikke
> d = "#" & s & "#" 'duer ikke
> d = CDate(s) 'duer ikke (giver 9. marts)
> d = #s# 'duer (naturligvis!) ikke
>
> Hva' duer så?

d = DateSerial(Right(s, 4), Left(s, 2), Mid(s, 4, 2))

-------
Tomas


Krabsen (03-09-2003)
Kommentar
Fra : Krabsen


Dato : 03-09-03 13:19


"Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
news:bj4lmn$2oeq$1@news.cybercity.dk...
> Jens Vestergaard skrev:
> > Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
> > Dim s as String
> > Dim d As Date
> > s = "09/03/2003"
> > d = # & s & # 'duer ikke
> > d = "#" & s & "#" 'duer ikke
> > d = CDate(s) 'duer ikke (giver 9. marts)
> > d = #s# 'duer (naturligvis!) ikke
> >
> > Hva' duer så?
>
> d = DateSerial(Right(s, 4), Left(s, 2), Mid(s, 4, 2))
>
Den var pænere end min

/Krabsen



Jens Vestergaard (03-09-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 03-09-03 13:27

"Krabsen" <news@krabsen.dk> skrev i en meddelelse
news:bj4m7u$9gv$1@sunsite.dk...
>
> "Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
> news:bj4lmn$2oeq$1@news.cybercity.dk...
> > Jens Vestergaard skrev:
> > > Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
> > > Dim s as String
> > > Dim d As Date
> > > s = "09/03/2003"
> > > d = # & s & # 'duer ikke
> > > d = "#" & s & "#" 'duer ikke
> > > d = CDate(s) 'duer ikke (giver 9. marts)
> > > d = #s# 'duer (naturligvis!) ikke
> > >
> > > Hva' duer så?
> >
> > d = DateSerial(Right(s, 4), Left(s, 2), Mid(s, 4, 2))
> >
> Den var pænere end min

Men jo stadig noget værre P..

Samme princip var jeg faktisk selv kommet frem til, men jeg ville (vil!)
nødigt tro på, at det var vejen frem - derfor min post.

Jeg forstår ikke helt #-brugen, når den (åbenbart) kun kan bruges til
hard-codede datoer. Hvor mange af dem har man i sit liv?

Nå. Thanks, anyway

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp




Tomas Christiansen (04-09-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 04-09-03 08:16

Jens Vestergaard skrev:
> Men jo stadig noget værre P..
>
> Samme princip var jeg faktisk selv kommet frem til, men jeg ville (vil!)
> nødigt tro på, at det var vejen frem - derfor min post.

Den "rigtige" måde at gøre det på er naturligvis at lave en funktion, som
tager en en streng indeholdende en dato og en streng indeholdende et format,
og konverterer til en dato. Så har du også funktionen til senere brug.

Altså noget i stil med:

Function StrToDate( _
ByVal DateString As String, _
ByVal FormatString As String) As Date
StrToDate = ...
End Function

Vi vil gerne se det færdige resultat. Vi elsker nemlig komme med KONSTRUKTIV
kritik


-------
Tomas



Jens Vestergaard (04-09-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 04-09-03 11:05

"Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
news:bj6oov$28uf$1@news.cybercity.dk...

> Jens Vestergaard skrev:
> > Men jo stadig noget værre P..

> Vi vil gerne se det færdige resultat. Vi elsker nemlig komme med
KONSTRUKTIV
> kritik

Undskyld, Tomas! Det var ikke ment som en U-konstruktiv kritik af dit
løsningsforslag, men som en forbandelse af, at VB ikke kan håndtere datoer
bedre.

Jeg har - som også skrevet - løst problemet relativt konstruktivt. Men jeg
synes fortsat ikke, at det er elegant.

Problemet opstår, fordi jeg har en control, som henter tid/dato fra en
timeserver og returnerer på formatet "mm/dd/yyyy hh:mm:ss" - og ja, så kan
jeg jo bare bytte om, som vi alle er enige om, men når nu datoformatet rent
faktisk PASSER med VB/SQL-formatet (med # omkring), så kan jeg bare ikke
forstå, at det ikke kan bruges, når først datoen ligger i en streng.

Men som så meget andet: Sårn er't alså bar'!

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp






Tomas Christiansen (04-09-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 04-09-03 11:11

Jens Vestergaard skrev:
> Undskyld, Tomas! Det var ikke ment som en U-konstruktiv kritik af dit
> løsningsforslag, men som en forbandelse af, at VB ikke kan håndtere datoer
> bedre.

Jeg opfattede det heller ikke ukonstruktivt! Min hentydning gik blot på at
hvis du præsenterer gruppen for noget kode, så kan du være sikker på det nok
skal blive kommenteret!

Der er næsten lige så mange meninger som mennesker. Vi er ALLE
inidividualister ("ikke mig" lyder den ENE spinkle stemme stemme).

-------
Tomas


Jens Vestergaard (04-09-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 04-09-03 12:12

"Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
news:bj732i$2m2q$1@news.cybercity.dk...
> Jeg opfattede det heller ikke ukonstruktivt! Min hentydning gik blot på at
> hvis du præsenterer gruppen for noget kode, så kan du være sikker på det
nok
> skal blive kommenteret!
>

Jamen, værs'go'....

'NetClock er en AxtiveX til formålet
'NoGo er en global Boolean, som sættes True
'i NetClocks Error-event,
'hvis NetClock fejler
'NetClock.LocalTime er på formatet "mm/dd/yyyy hh:mm:ss"

Function GetAndDisplayTid() As Boolean
Dim s As String
Dim d As Date

NoGo = False
NetClock.GetTime
NetClock.DoEvents
If Not NoGo Then
s = Left(NetClock.LocalTime, 10)
d = DateSerial(Right(s, 4), Left(s, 2), Mid(s, 4, 2))
labNetTid = Format(NetClock.LocalTime, "hh:mm:ss")
labNetDato = Format(d, "long date", vbMonday, vbUseSystem)
End If

GetAndDisplayTid = Not NoGo

End Function

....men det er da - bare som eksempel - bedårende, at DateSerial skal have Y
M D som argument, mens #...# skal have D M YYYY.

Nå, mon ikke vi nåede til vejs ende med dette emne. Tak til dem, som bar!


--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Jan V. (03-09-2003)
Kommentar
Fra : Jan V.


Dato : 03-09-03 13:31


"Jens Vestergaard" <j@railsoft.dk> skrev i en meddelelse
news:3f55d326$0$83068$edfadb0f@dtext01.news.tele.dk...
> Folks,
>
> Nu er jeg (også!) lige kørt fast i det der dato-skidt.
>
> Dim d as Date
> d = #09/03/2003#
> ... so far so good. Det virker. Det kan jeg godt få formateret som "3.
> september 2003".
>
> Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
> Dim s as String
> Dim d As Date
> s = "09/03/2003"
> d = # & s & # 'duer ikke
> d = "#" & s & "#" 'duer ikke
> d = CDate(s) 'duer ikke (giver 9. marts)
> d = #s# 'duer (naturligvis!) ikke
>
> Hva' duer så?
>
> --
> mvh
> Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
> www.railsoft.dk
> Døgnets jernbanenyheder: www.railsoft.dk/medier.asp
>

d = & "#" & Format("09/03/2003", "dd-mm-yyyy") & "#"

Jan



Jens Vestergaard (03-09-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 03-09-03 13:44

"Jan V." <jvFJERNDETTE@OG DETTEHEROGSÅdgm-sdg.com> skrev i en meddelelse
news:3f55defc$0$54757$edfadb0f@dread11.news.tele.dk...
>
>> Hva' duer så?

> d = & "#" & Format("09/03/2003", "dd-mm-yyyy") & "#"


Nej, desværre..., så snart du begynder at sætte # i citationstegn går
funtionen af dem som dato-literals fløjten. Åbenbart!

Det kan lade sig gøre i SQL, men tilsyneladende ikke i 'ren VB'...
--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp




Patrick Hayes (04-09-2003)
Kommentar
Fra : Patrick Hayes


Dato : 04-09-03 09:16

> > d = & "#" & Format("09/03/2003", "dd-mm-yyyy") & "#"

dette er nok det nærmeste rigtige svar. HVIS det skal bruges i en SQL
statement.
>
> Nej, desværre..., så snart du begynder at sætte # i citationstegn går
> funtionen af dem som dato-literals fløjten. Åbenbart!
>
> Det kan lade sig gøre i SQL, men tilsyneladende ikke i 'ren VB'...
> --

Nej VB kender ikke brugen af #. Det er en SQL ting.

- patrick



Jens Vestergaard (04-09-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 04-09-03 10:57

"Patrick Hayes" <patrick@NotAValidAddress.dk> skrev i en meddelelse
news:JwC5b.64684$Kb2.2947108@news010.worldonline.dk...

> Nej VB kender ikke brugen af #. Det er en SQL ting.

Jow! VB *kender* altså godt # - det er bare ikke så tit, man kan få brug for
det, så vidt jeg kan se, fordi det kun duer ved hard-codede datoer.

Dim d as Date
d = #3/22/1956#
Så vil Format (d, "Long Date") returnere "22. marts 1956". Så det kan godt
bruges, men som sagt: Jeg kan ikke lige se, hvornår man hard-coder en dato
på den måde.

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Tomas Christiansen (04-09-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 04-09-03 11:08

Jens Vestergaard skrev:
> Jeg kan ikke lige se, hvornår man hard-coder en dato på den måde.

Jeg HAR faktisk haft brug for det!

I min tid har jeg kodet hundredetusindvis af kodelinier fordelt på
hundredevis af programmer i en masse forskellige programmereingssprog, og
jeg HAR faktisk kodet ét program i VB 6, hvor jeg har 4 (læs: fire)
hardcodede datoer!

-------
Tomas


Patrick Hayes (04-09-2003)
Kommentar
Fra : Patrick Hayes


Dato : 04-09-03 12:38

> > Jeg kan ikke lige se, hvornår man hard-coder en dato på den måde.
>
> Jeg HAR faktisk haft brug for det!
>
tillykke...

- patrick



Tomas Christiansen (04-09-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 04-09-03 13:38

Patrick Hayes skrev:
> tillykke...

....tak...

-------
Tomas

Patrick Hayes (04-09-2003)
Kommentar
Fra : Patrick Hayes


Dato : 04-09-03 09:14

> Nu er jeg (også!) lige kørt fast i det der dato-skidt.

ok

>
> Dim d as Date
> d = #09/03/2003#

Dette gælder KUN i en SQL statement. det har ikke så meget med VB at gøre.
Det er måden at fortælle SQL at det drejer sig om en variabel af typen DATE,
ligesom man skriver 'text' når det drejer sig om en string og man ikke gør
noget når det drejer sig om et NUMBER (int/long/float...)

> ... so far so good. Det virker. Det kan jeg godt få formateret som "3.
> september 2003".
>
> Men hva' nu hvis man har "09/03/2003" i en streng-variabel...?
> Dim s as String
> Dim d As Date
> s = "09/03/2003"
> d = # & s & # 'duer ikke
> d = "#" & s & "#" 'duer ikke
> d = CDate(s) 'duer ikke (giver 9. marts)
> d = #s# 'duer (naturligvis!) ikke
>
> Hva' duer så?

din CDate() virker fint, MEN er afhængig af dit tidsformat på
computeren/serveren/databasen. Her er du nok nød til at klippe og klistre...
ikke noget kønt, men så virker det altid.


- patrick



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste