Avatar billede bigo Nybegynder
24. november 2006 - 11:20 Der er 7 kommentarer og
1 løsning

periode frekvens

Hejsa.

Hvis man har en frekvens (kunne være 2 gange) og et interval (kunne være "hver dag", hver uge" eller feks. "hver 14 dag")

Og jeg så vil have noget der matcher på dag/uge. Hvordan skal jeg så få den til at ramme - f.eks. hver 14 dag/frekvens nr. 2 - på en overskuelig måde.

Fatter jeg selv hvad jeg skriver ? ;-)
Avatar billede kinderaeg Nybegynder
24. november 2006 - 11:41 #1
fx med nedenstående, men du får jo nok et problem med skæve tal, hvis der fx skal forekomme noget 2 gange på en uge, det er jo hver 3½ dag, så du får nok noget bøvl med afrundinger ;)

if($interval%((int)($interval/$frekvens))==0) {
  //udfører kode
}
Avatar billede bigo Nybegynder
24. november 2006 - 12:06 #2
så ved f.eks. mandag hver 14 dag noget ala day_of_year lige tal så er den god nok.
Avatar billede kinderaeg Nybegynder
24. november 2006 - 12:24 #3
Tjah, det fungerer jo kun optimalt, hvis din frekvens går op i dit interval, og en division dermed ikke returnerer et kommatal. Hvis du fx regner i et bank-år (360 dag), og dividerer med 14 får du 25.7, selv om det er lige tal. Det væsentlige er, at tallene går op i hinanden (fx 350/14=25). Men det er derfor jeg har lavet din divisor om til et heltal, ved at typecaste den som int, det gør at du, fx ved 360/14 får 25, frem for 25.7
Avatar billede bigo Nybegynder
24. november 2006 - 12:49 #4
Ok, jeg prøver i aften og se om jeg kan få det til at fungere. Takker ..
Avatar billede bigo Nybegynder
27. november 2006 - 14:49 #5
Arg.. jeg bliver nødt til at lave kaldet i en mysql dims.

jeg har

frequency som indeholder f_code (frekvens f.eks. 14 for hver 14 dag, 7 for ugentligt, 1 for hver dag samt 2 for hver anden dag)

interval_rel som indeholder et id samt id_id (day of week)
Avatar billede kinderaeg Nybegynder
27. november 2006 - 15:03 #6
Ok, så har jeg nok misforstået dig lidt, regnede frekvensen som et antal gange inden for det givne interval. Så er det måske mere noget i stil med nedenstående du skal bruge.

$frekvens = 7;
$interval = 30;
for($i=1; $i<$interval; $i++) {
  if($i%$frekvens==0) {
    echo $i.'<br>';
  }
}
Avatar billede bigo Nybegynder
27. november 2006 - 20:57 #7
Jeg kan godt se hvor du vil hen. Jeg lukker og smider den over i mysql da jeg er kørt fast.

Smid endelig et svar.
Avatar billede kinderaeg Nybegynder
28. november 2006 - 08:41 #8
Svar
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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