Bosna i Hercegovina



#1 13.04.2011-17:45
roko Offline
Clan
Registrovan/a od: 02.02.2009-00:23
Komentari: 236


Subject: Broj tjedna
Dali ima neka funkcija koja bi mi vratila dan prvi i zadnji dan tjedna ili samo prvi
dakle imam unos datuma za 4 uvjeta datum 1 datum 2 tjedan 1 tjedan 2
odprilike od 1 do 2 raspon Kad unosim datum imam funkciju koja vrača prvi i zadnji dan u tjednu
pa onda bez problema u i 2 vratim broj tjedna tjedan 1=Format(datum, "ww") ali kako u nazad odnosno tjedan 1 kad upišem 14 da mi vrati 02.04.2011 ?
Question
DownloadIzvorni kod (Text):
  1.  Function DanUTjednu(datPocetak As Date, kraj As Boolean) As Date
  2.     Dim Pocetak As Date
  3.     Dim Zavrsetak As Date
  4.     Pocetak = DateAdd("d", -Weekday(datPocetak) + 1, datPocetak)
  5.     Zavrsetak = DateAdd("d", 6, Pocetak)
  6.     If Month(datPocetak) <> Month(Pocetak) Then
  7.         Pocetak = DateAdd("d", -Day(datPocetak), datPocetak) + 1
  8.     End If
  9.     If Month(datPocetak) <> Month(Zavrsetak) Then
  10.         Zavrsetak = DateSerial(Year(datPocetak), Month(datPocetak) + 1, 0)
  11.     End If
  12.     If kraj = True Then
  13.     DanUTjednu = Pocetak + 1
  14.     Else
  15.     DanUTjednu = Zavrsetak '''' -Pocetak + 1
  16.     End If
  17. End Function


Ikona prilozene slike:
dat.JPG
Tip fajla: Informacije o fajlu: jpg jpg
Preuzimanja: 87
Veličina: 71.15 KB
Veličina slike: 633 x 172 Pixels

↑  ↓

#2 13.04.2011-18:08
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,737


Subject: Re: Broj tjedna
Samop jos jedno dodatno pitanje.
dali tjedne(sedmice) Racunas za svaki mjesec ili tjedan u godini.
Pozdrav
↑  ↓

#3 13.04.2011-18:26
roko Offline
Clan
Registrovan/a od: 02.02.2009-00:23
Komentari: 236


Subject: Re: Broj tjedna
unos 1 je početak od za tjedan unos 2 je kraja tjedna recimo unos 1 kad upišem 02.05.2011 daje mi 19 tjedan a unos 2 kad upišem 07.05.2011 vrača mi 19 tako isto da u tjedan 1 upišem 19 ili u tjedan 2 19 trbao bih dobiti isti rezultat . bilo bi lakše samo s jednim uslovom pa lista ali ovako mi u cjeloj formi smanjuje broj redova naročito jer sigurno 6 mjeseci imam jedan uslov a ovi drugi su na preskok
↑  ↓

#4 13.04.2011-22:26
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,737


Subject: Re: Broj tjedna
DownloadIzvorni kod (Visual Basic):
  1. Function DanUTjednu(Tjedan As Integer)
  2. Dim DatumS
  3. Dim T, Dan, Datum1, Datum2
  4.  
  5. DatumS = Date
  6. Start:
  7. T = Format(DatumS, "WW")
  8. If Val(T) > Tjedan Then
  9. DatumS = DatumS - 7
  10. GoTo Start
  11. ElseIf Val(T) < Tjedan Then
  12. DatumS = DatumS + 7
  13. GoTo Start
  14. ElseIf Val(T) = Tjedan Then
  15. Dan = WeekDay(DatumS)
  16. Datum1 = DatumS - Dan + 1
  17. T = Format(Datum1, "WW")
  18. Datum2 = Datum1 + 6
  19. T = Format(Datum2, "WW")
  20. End If
  21. DanUTjednu = Datum1 & "-" & Datum2
  22. End Function

Pozdrav
↑  ↓

#5 14.04.2011-06:50
roko Offline
Clan
Registrovan/a od: 02.02.2009-00:23
Komentari: 236


Subject: Re: Broj tjedna
tu je neki zez Ako je tjedan = 1 u 2011
DatumS=28.12.2008
na 2 tjedan daje ok 02.01.2011
Start:( pređe 1 i krene od 53 2010
T = Format(DatumS, "WW")
If Val(T) > Tjedan Then
DatumS = DatumS - 7
GoTo Start
imam obračunsko razdoblje pa ču koristiti umjesto DatumS = OB_razdoblje ali i dalje ne razumijem
zašto ge okrene i broji do 2008
↑  ↓

#6 14.04.2011-08:53
roko Offline
Clan
Registrovan/a od: 02.02.2009-00:23
Komentari: 236


Subject: Re: Broj tjedna
Evo riješio problem (2017 i 2011...)
vezo sam na prvu funkciju da vrati prvi i zadnji dan tjedna pa ako je 01.01.2017 nedelja
ne daje drugi tjedan kao prvi nego nedelju ka prvi pa onda dalje redom
DownloadIzvorni kod (Text):
  1. Function BrojTjedna(Tjedan As Integer, koji As Boolean) As Date
  2. Dim T, Dan, Pocetni
  3. Dim Datum1 As Date
  4. Dim i
  5. Datum1 = "01.01." & Format(Now(), "yyyy")
  6. Pocetni = Datum1
  7. For i = 1 To Tjedan
  8. Datum1 = DateAdd("d", 7, Datum1)
  9. Next i
  10. Dan = DateAdd("d", -7, Datum1)
  11. If Dan = Pocetni And koji = True Then: BrojTjedna = Pocetni: Exit Function
  12. If koji = True Then
  13. BrojTjedna = DanUTjednu(DateAdd("d", -7, Datum1), True)
  14. Else
  15. BrojTjedna = DanUTjednu(DateAdd("d", -7, Datum1), False)
  16. End If
  17. End Function
↑  ↓

#7 14.04.2011-10:04
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,737


Subject: Re: Broj tjedna
Trebalo je samo promijeniti ovo:
DatumS = DatumS - 1 i
DatumS = DatumS + 1

DownloadIzvorni kod (Visual Basic):
  1. Function DanUTjednu(Tjedan As Integer)
  2. Dim DatumS
  3. Dim T, Dan, Datum1, Datum2
  4.  
  5. DatumS = Date
  6. Start:
  7. T = Format(DatumS, "WW")
  8. If Val(T) > Tjedan Then
  9. DatumS = DatumS - 1
  10. GoTo Start
  11. ElseIf Val(T) < Tjedan Then
  12. DatumS = DatumS + 1
  13. GoTo Start
  14. ElseIf Val(T) = Tjedan Then
  15. Dan = WeekDay(DatumS)
  16. Datum1 = DatumS - Dan + 1
  17. Datum2 = Datum1 + 6
  18. End If
  19. DanUTjednu = Datum1 & "-" & Datum2
  20. End Function

Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 14.04.2011-10:09 od strane zxz. ↑  ↓

#8 14.04.2011-10:22
roko Offline
Clan
Registrovan/a od: 02.02.2009-00:23
Komentari: 236


Subject: Re: Broj tjedna
Isao sam postaviti zbog obracunske godine pa je 01.01. pšocetak kako god okrenes
a treba mi mogučnost 2 upisa sa istom svrhom tijedan 1 dan 1 akou upisem recimo
tjedani 14 u kolonama1 dobijam 14 i 28.03.2011 a ako upisem u datum 1 03.04.2011
dobijam 14 i 28.03.201 a to mi je trbalo da se ne poklapaju dat1 i dat 2
samo u funkciji1 imam malo previše a to je
' If Month(datPocetak) <> Month(Pocetak) Then
' Pocetak = DateAdd("d", -Day(datPocetak), datPocetak) + 1
' End If
to trba maknuti
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 14.04.2011-10:25 od strane roko. ↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 18.08.2018-09:38.