09. maj 2006 - 12:43
Der er
18 kommentarer
Beregning af dato fra nr
Hej til alle. hvordan er du nu man beregner dato fra '19000101' dvs nr 0 = er første uge i 19000101 hvordan kan jeg så finde ud hvilke ugenr denne uge har ? det må være noget med Datepart(now,...... nogen der kan komme med et bud ?
Annonceindlæg fra Infor
a = DatePart(\"ww\", now, 2, 3) så får jeg ugenr i år men skal bruge siden 19000101
Fix(Datediff("d", Cdate("19000101"), Now()) / 7) måske?
type mismatch a= Fix(Datediff("d", Cdate("19000101"), Now()) / 7) denne linie kan fortælle hvilke uge vi er i feks.. a = DatePart(\"ww\", now, 2, 3) men at regne det til hvormange uger der er gået !???
Er der ikke andre forslag ?
Det var datokonverteringen der gav fejl, men nu er den testet: Dim strDato As String, dtmStartDato As Date strDato = "19000101" dtmStartDato = DateSerial(CInt(Left(strDato, 4)), CInt(Mid(strDato, 5, 2)), CInt(Mid(strDato, 7, 2))) MsgBox (Fix(DateDiff("d", dtmStartDato, Now()) / 7))
hmmm...ser ud til at fungere men forstå ikke hvad der sker i koden :( hvad laver disse : dtmStartDato = DateSerial= CInt= Left= CInt= Mid= DateDiff =
og hvad nu hvis jeg har en ugenr som skal laves om til normal dato ? dvs omvendt at det der kode... ? :(
det jeg gør er at jeg tager antallet af dage og dividerer det med 7, så her jeg antallet af uger: Datediff("d", dtmStartDato, Now()) / 7 Men det kan jo være et decimaltal, fordi det kan være 5574.345 uger derfor runder jeg ned: Fix(Datediff("d", dtmStartDato, Now()) / 7) dtmStartDato skal være 1. jan 1900, men da du starter med en streng: "19000101" skal den konverteres til en dato, og det gør jeg sådan: 'Variabler til mellemregningerne Dim strDato As String, dtmStartDato As Date 'sætter strDato til "19000101": strDato = "19000101" 'omregner til dato med DateSerial(1900, 1, 1) dtmStartDato = DateSerial(CInt(Left(strDato, 4)), CInt(Mid(strDato, 5, 2)), CInt(Mid(strDato, 7, 2))) Det omvendte kan du gøre sådan: Dim intAntalUger intAntalUger = 500 dtmStartDato = DateAdd("d", -intAntalUger * 7, Now()) MsgBox (dtmStartDato)
CInt(Left(strDato, 4)) Det betyder "fra venstre (Left) 4 tegn af strDato, Lavet om til et tal (CInt)" Det giver 1900 CInt(Mid(strDato, 5, 2)) Det betyder "Midt (Mid) i strengen strDato, fra 5 og to tegn frem, lavet om til et tal (CInt)" Forstår du det?
jo det meste forstår jeg, men har kigget i min kode nu og har fundet ud af at der skal par ændringer til før jeg kan bruge det....det er lidt kompleks fordi jeg nogen gange kan kun sende en værdi som hedder år "2005" så skal jeg havde vide uge nr for det år og nogle gange kan der også forkomme et uge nr for det år dvs hvilke nr har uge 2 i 2005 i forhold til 19001. jeg har prøvet at erstatte now med 2005 men det holder ikke rigtigt.... også skal jeg også finde en måde at lave det hele om til det modsatte.... :( men du skal have tussind tak for hjælpen.... det har givet noget at arbejde med..
ren interface mæssige.. har brugeren 4 bokse at indtaste data i 1: indtast fraår 2: indtast frauge 1: indtast tilår 2: indtast tiluge så skal jeg finde de to uge nr dvs hvis har valgt 2005 uge 15 til 2005 - 25 så skal jeg bruge ugenr 5422 til 2342 .... men problemmet er at de ikke altid vælger nogen gange er det bare år :(
Sig mig en gang, har du to profiler?
De må man ikke:
http://www.eksperten.dk/regler.phtml Grunden er at alt for mange ville gøre det for at samle flere point. MAn får jo 5 p om dagen.
Både geagleeye og phi-del har masser af point, så det er vel ikke derfor :o)
ding.....skal lukke den straks...
min bror har brugt kontoen da han legede med programmering.. men den er lukket nu....
Kurser inden for grundlæggende programmering