Centar za edukaciju-BiH



#1 13.04.2011 17:45
roko Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


Predmet: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
PreuzmiIzvorni kôd (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


Slicice prilozenih slika:
dat.JPG
Tip datoteke:Informacije o tipu datoteke za:jpg jpg
Preuzimanja:368
Velicina datoteke:71.15 KB
Velicina slike: 633 x 172 Pikseli

↑  ↓

#2 13.04.2011 18:08
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Broj tjedna
Samop jos jedno dodatno pitanje.
dali tjedne(sedmice) Racunas za svaki mjesec ili tjedan u godini.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 13.04.2011 18:26
roko Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


Predmet: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 Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Broj tjedna
PreuzmiIzvorni kôd (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

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 14.04.2011 06:50
roko Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


Predmet: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 Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


Predmet: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
PreuzmiIzvorni kôd (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 Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


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

PreuzmiIzvorni kôd (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

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 14.04.2011 10:09 od strane zxz. ↑  ↓

#8 14.04.2011 10:22
roko Van mreze
Clan
Registrovan od:02.02.2009
Postovi:236


Predmet: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 post je ureden 1 puta. Posljednja izmjena 14.04.2011 10:25 od strane roko. ↑  ↓

Stranice (1):1


Sva vremena su GMT +01:00. Trenutno vrijeme: 3: 28 am.