Avatar billede simon_lassen Nybegynder
03. december 2002 - 08:33 Der er 9 kommentarer og
1 løsning

Første og sidste dag i en uge.

Er det muligt ud fra et uge nummer at finde datoen på den første dag samt datoen på den sidste dag.

Et lille eksembel.

uge 49. Første dag = 02-12-02

Sidste dag = 08-12-02
Avatar billede joern Nybegynder
03. december 2002 - 08:55 #1
Hej.

Det er ikke længe siden spørgsmål http://www.eksperten.dk/spm/283300 blev stillet og besvaret.  Kig dér.

M.v.h. Jørn
Avatar billede amerikaner Nybegynder
03. december 2002 - 09:12 #2
Hej, her er min...

' =============================================================
' Description : Returns the start or end date when passed year
'              and week.
' Globals    :
' History    : 02.07.02: Original Code.
' =============================================================
Public Function gf_DATO_I_UGEN(p_intÅr, p_intUge, p_intStart)
On Error Resume Next
   
    gf_DATO_I_UGEN = DateSerial(p_intÅr, 1, 7 * p_intUge - 3 - Weekday(DateSerial(p_intÅr, 0, 0), 3))
   
    '-- Add 6 if end of week
    If Not p_intStart Then
        gf_DATO_I_UGEN = CVDate(gf_DATO_I_UGEN) + 6
    End If
End Function

Så: 
?gf_DATO_I_UGEN(2002,49,0)
09-12-02
?gf_DATO_I_UGEN(2002,49,-1)
02-12-02
Avatar billede simon_lassen Nybegynder
03. december 2002 - 09:35 #3
#amerikaner

Det ser fint ud..

Jeg er dog stadigvær lidt grøn når det gælder vb...

Jeg har en veriabel lad og kalde den UgeNummer.

Det er så gerne vil have er to nye veriabler en med mandagen i den uge og en med søndagen.

Kan du hjælpe mig med det??

på forhånd tak...
Avatar billede martin_moth Mester
03. december 2002 - 09:58 #4
Opret en variabel:
  Dim Variabelnavn As Variabeltype
Mhv variabeltyper, kik i VB's hjælp...

Tilføj værdi til variabel:
  Variabelnavn = Værdi

Kik i VB-hjælp under "Scope" (eller noget i den retning" for at se hvordan variabler er tilgængelige, afhængigt af hvor de er erklæret.

Fx: Erklærer du en variabel INDE i en Sub, er den lokal og kun synlig i denne sub.
Fx: Opretter du den i toppen af din programkode, er den synlig for alle sub og functions i den aktuelle form/modul
... og så kan du se lidt på Private/Public, hvis du har de lyster ;o)
Avatar billede amerikaner Nybegynder
03. december 2002 - 10:59 #5
Ja men...så starte vi fra starten...

Hvor er din variable, i en form, i subroutine?

Er det

Dim UgeNummer
Sub Command1_Click()
  ....alt din kode
End Sub

ELLER

Sub Command1_Click()
  Dim UgeNummer
  ....alt din kode
End Sub
Avatar billede amerikaner Nybegynder
03. december 2002 - 11:07 #6
Hvis den er indenfor subroutine og du skal brug den indenfor....

Kopi function gf_DATO_I_UGEN inden din form.

og så...

Sub DinSubRoutine()
  Dim UgeNummer
  Dim StartDato as Date, SlutDato as Date
 
  ....din kode
  UgeNummer = [noget????]

  StartDato = gf_DATO_I_UGEN(Year, UgeNummer, True)
  SlutDato = gf_DATO_I_UGEN(Year, UgeNummer, False)

  ....resten af din kode
 
End Sub

Det er det samme undenfor by gore hvad martin siger, kig i hjelpen re: hejarchey af Dimensioner.  Global vs local variables osv.
Avatar billede simon_lassen Nybegynder
03. december 2002 - 11:59 #7
Når du skriver at jeg skal "Kopi function gf_DATO_I_UGEN inden din form"

Hvor skal jeg så ligge den..

Sådan her????

Private Sub cmdUdfør_Click()

Public Function gf_DATO_I_UGEN(p_intÅr, p_intUge, p_intStart)
On Error Resume Next
   
    gf_DATO_I_UGEN = DateSerial(p_intÅr, 1, 7 * p_intUge - 3 - Weekday(DateSerial(p_intÅr, 0, 0), 3))
   
    '-- Add 6 if end of week
    If Not p_intStart Then
        gf_DATO_I_UGEN = CVDate(gf_DATO_I_UGEN) + 6
    End If
End Function

end sub
Avatar billede amerikaner Nybegynder
03. december 2002 - 12:06 #8
Nej, en function skal ligger for sig slev
---------
Function x()
...Code
End Function

Sub Y()
...Code
MitVariable = X(Value)
End Sub
---------

---------
Public Function gf_DATO_I_UGEN(p_intÅr, p_intUge, p_intStart)
  ...A whole bunch of code
End Function

Private Sub cmdUdfør_Click()
..Code
End Sub
---------

You "Call" a function from inside the subroutine, but it lies outside.

Forskel med Public og Private er Private can kun bliv brugt hvor den ligger (Form) og Public kan brug i andre former, moduler, osv.
Avatar billede amerikaner Nybegynder
03. december 2002 - 12:08 #9
All together now....

Public Function gf_DATO_I_UGEN(p_intÅr, p_intUge, p_intStart)
On Error Resume Next
   
    gf_DATO_I_UGEN = DateSerial(p_intÅr, 1, 7 * p_intUge - 3 - Weekday(DateSerial(p_intÅr, 0, 0), 3))
   
    '-- Add 6 if end of week
    If Not p_intStart Then
        gf_DATO_I_UGEN = CVDate(gf_DATO_I_UGEN) + 6
    End If
End Function

Private Sub cmdUdfør_Click()
  Dim UgeNummer
  Dim StartDato as Date, SlutDato as Date
 
  ....din kode
  UgeNummer = [noget????]

  StartDato = gf_DATO_I_UGEN(Year, UgeNummer, True)
  SlutDato = gf_DATO_I_UGEN(Year, UgeNummer, False)

  ....resten af din kode
 
End Sub
Avatar billede simon_lassen Nybegynder
03. december 2002 - 13:21 #10
Mange tak for hjælpen.

Nu virker det takket være din hjælp....


Point til amerikaner
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester