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