12. december 2004 - 13:53
Der er
41 kommentarer og 2 løsninger
Kalender problem med ugerne
Hejsa jeg har følgende problem:
http://www.majistic.com/~nicocarlos/Image/kal.gif som i nok kunne se er der 53 uger, den fatter ikke at det er uge 1, det er sikkert noget i min kode, men jeg kan ikke få rettet det til :(
KodeN:
if($row != 1 and $col == 1) {
$calendar .= "<font color=#008000>";
if($dayno < $daymin){
$y = $year;
if($month == 1) $m = 12;
if($month != 1) $m = $month - 1;
if($month == 1) $y = $year - 1;
$d = ($dom[$daymaxl - 1]) + $dayno;
$calendar .= sprintf("%02d",getWeekNumber($y, $m, $d));
}else{
if($dayno > $daymax){
$y = $year;
if($month == 12) $m = 1;
if($month != 12) $m = $month + 1;
if($month == 12) $y = $year + 1;
$d = $dayno - $daymax;
$calendar .= sprintf("%02d",getWeekNumber($y, $m, $d));
}else{
$calendar .= sprintf("%02d",getWeekNumber($year, $month, $dayno));
}
}
$calendar .= "</font>";
}
Håber der er en som kan hjælpe med at få rettet det til :)
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
12. december 2004 - 13:55
#1
Der er da også 53 uger i 2004
12. december 2004 - 13:56
#2
Tjek en kalender - af pap... :o)
12. december 2004 - 14:03
#3
hmm, i min pap kalender er der altså 52 uger og uge 1 starter Mandag d.27 dec
12. december 2004 - 14:05
#4
Der er forskel på amerikanske ugenumre, og rigtige ugenumre. Er din kalender amerikansk?
12. december 2004 - 14:05
#5
ok - jamen - uge 52 slutter med 26. dec. dvs. at der er en uge 53, der strækker sig til d. 31. dec. derefter starter det nye år, med uge 1 fra d. 1 jan.
12. december 2004 - 14:06
#6
Og desuden mangler jeg også at vise lidt af den kode som også er en del af uge beregningen
12. december 2004 - 14:09
#7
Jeg er ikke helt sikker erikjacobsen, men jeg tror faktisk at det er amerikansk, men den skal være dansk, jeg kan vise dig min funktion til ugerne: function getWeekNumber($year, $month, $day){ $YearInQuestion = $year; $InputDateOffset = CalculateIsoWeekday($year, $month, $day); $January1Offset = CalculateIsoWeekday($YearInQuestion, 1, 1); $December31Offset = CalculateIsoWeekday($YearInQuestion, 12, 31); if($month == 1 and $day < 4 and $January1Offset > 3 and $InputDateOffset > 1) { $YearInQuestion = $YearInQuestion - 1; } if ($month == 12 and $day > 28 and $December31Offset < 3 and $InputDateOffset < 5) { $YearInQuestion = $YearInQuestion + 1; } $January4 = getDatenumber($YearInQuestion, 1, 4); $FirstMondayOfYear = getDatenumber($YearInQuestion, 1, 4 - CalculateIsoWeekday($YearInQuestion, 1, 4)); $weeknum = (getDateNumber($year, $month, $day) - $InputDateOffset - $FirstMondayOfYear ) / 7 + 1; return($weeknum); } kan du hjælpe med at få rettet den lidt til?
12. december 2004 - 14:09
#8
Måske kunne du så sige ... if ($ugenr == '53') { $ugenr = '1'; } ...eller noget!
12. december 2004 - 14:10
#9
if ($weeknum == '53') { $weeknum = '1'; }
12. december 2004 - 14:13
#10
Sån måske? <? function getWeekNumber($year, $month, $day){ $YearInQuestion = $year; $InputDateOffset = CalculateIsoWeekday($year, $month, $day); $January1Offset = CalculateIsoWeekday($YearInQuestion, 1, 1); $December31Offset = CalculateIsoWeekday($YearInQuestion, 12, 31); if($month == 1 and $day < 4 and $January1Offset > 3 and $InputDateOffset > 1) { $YearInQuestion = $YearInQuestion - 1; } if ($month == 12 and $day > 28 and $December31Offset < 3 and $InputDateOffset < 5) { $YearInQuestion = $YearInQuestion + 1; } $January4 = getDatenumber($YearInQuestion, 1, 4); $FirstMondayOfYear = getDatenumber($YearInQuestion, 1, 4 - CalculateIsoWeekday($YearInQuestion, 1, 4)); $weeknum = (getDateNumber($year, $month, $day) - $InputDateOffset - $FirstMondayOfYear ) / 7 + 1; if ($weeknum == '53') { $weeknum = '1'; } return($weeknum); } ?>
12. december 2004 - 14:17
#11
Du ved godt at ugenummer kan fås automatisk i nyere PHP-ere?? $time = time(); for ($i=0;$i<100;$i++) { print date("W Y-m-d",$time)."\n"; $time+=24*60*60; }
12. december 2004 - 14:51
#12
Hvad så der - kommer du videre, eller...
12. december 2004 - 14:56
#13
function getWeekNumber($year, $month, $day) { return strftime( "%V", mktime( 0, 0, 0, $moth, $day, $year ) ); }
12. december 2004 - 14:56
#14
Der var en BUG i min kode :D LOL! Et møl faktisk ;) Det skulle være: function getWeekNumber($year, $month, $day) { return strftime( "%V", mktime( 0, 0, 0, $month, $day, $year ) ); }
12. december 2004 - 15:09
#15
Tilbage nu. Jeg prøvede din mil - men nu har jeg 2*uge 1, fordi du lavede jo bare uge 53 om til uge 1.
12. december 2004 - 15:10
#16
coderdk - hvad skal jeg skifte din kode ud med?
12. december 2004 - 15:11
#17
Havde du ikke en funktion der hed getWeekNumber? Bare skift hele den funktion ud med min ;)
12. december 2004 - 15:23
#18
coderdk, så siger alle uger 0
12. december 2004 - 15:53
#19
Erh, det lyder dælme underligt! Hvilken version af PHP er det? Jeg har ellers brugt den tit... %V står beskrevet her:
http://dk2.php.net/strftime Ellers prøv og se om du får det samme resultat hvis du bruger date:
function getWeekNumber($year, $month, $day)
{
return date( "W", mktime( 0, 0, 0, $month, $day, $year ) );
}
12. december 2004 - 16:04
#20
Den laver det samme med 53 uger, underligt :/
12. december 2004 - 16:07
#21
Tror du ikke bare vi kan om definere: $January4 = getDatenumber($YearInQuestion, 1, 4); $FirstMondayOfYear = getDatenumber($YearInQuestion, 1, 4 - CalculateIsoWeekday($YearInQuestion, 1, 4)); $weeknum = (getDateNumber($year, $month, $day) - $InputDateOffset - $FirstMondayOfYear ) / 7 + 1; Såden så den første mandag i det næste år er dagen efter der er fået 52 uger?
12. december 2004 - 16:12
#22
Har fundet dette - kan det mon bruges til noget? <? switch(date("w")) { case 1: $daysub=0; break; case 2: $daysub=1; break; case 3: $daysub=2; break; case 4: $daysub=3; break; case 5: $daysub=4; break; case 6: $daysub=5; break; case 0: $daysub=6; break; } $weeknumber=(date ("z", mktime(0,0,0, date("m"), date("d")-$daysub, date("Y")) )+7)/7; echo round($weeknumber); ?>
12. december 2004 - 16:13
#23
ville du bruge det isteadet for en funktion eller hvad mil?
12. december 2004 - 16:13
#24
Det er også korrekt, der er 53 uger i 2004, I Danmark bruger vi ISO-8601:1988 standarden, som siger at den første uge i er den uge der har mindst fire dage i det nye år - Hvis din papkalender har 52, er det en fejl ;)
12. december 2004 - 16:15
#25
Tænkte jo nok, der var 53 .... !!!
12. december 2004 - 16:23
#26
Så er min pap kalender forkert. Jeg har bare altid troet det var 52 uger..og uge 1 sagtens kunne være i det gamle år. Underligt hehe
12. december 2004 - 16:25
#27
Har ledt som en gal, og kunne heller ikke finde andet end, at der var 53 uger...
12. december 2004 - 16:27
#28
men uge 1 starter da ikke før den 3 så - jeg har altså tjekket alle mine kalendere og de siger 52 uger - endnu mere underligt
12. december 2004 - 16:30
#29
Det kan ikke pass, der er altså ikke 53 uger..
12. december 2004 - 16:31
#30
52*7 = 364 dage. og jeg tror ikke på at man laver en halv uge 53.
12. december 2004 - 16:33
#31
ok
12. december 2004 - 16:34
#32
Dem der laver kalendere har nok knald i låget - skriv til dem...
12. december 2004 - 16:34
#33
Det kan godt være i har ret - jeg er pisse forvirret..hehe
12. december 2004 - 16:35
#34
Vær ikke forvirret - på Eksperten bliver man oplyst, og kaos forsvinder - tro på det!
12. december 2004 - 16:38
#35
Så har der slet ikke været noget problem - det er bare mig som har været snot forvirret fordi jeg har siddet med min kærestes kalender som siger uge 52 -> Uge 1 I stedet for Uge 52 -> Uge 53 Sorry :/
12. december 2004 - 16:39
#36
No Problem
12. december 2004 - 16:40
#37
Dine kalendere er så forkerte ;) Prøv evt. at finde nogle danske kalendere på nettet - Uge 53 er fra mandag den 27. december til den 2. januar ;)
12. december 2004 - 16:41
#38
Ja
12. december 2004 - 16:42
#39
Jeg sagde forkert med datoen - der er 53 uger, og datoerne er som du skriver; til 2 jan.
12. december 2004 - 16:42
#40
mil du kan ligge et svar så kan i dele, fordi i hjalp mig med at finde ud af at der godt kan være 53 uger på et år ;)
12. december 2004 - 16:43
#41
okay
12. december 2004 - 16:45
#42
Og jeg smider min kærestes kalender ud af vinduet nu - sikke en lorte kalender - nu har jeg rodet med det lort hele dagen ;)
12. december 2004 - 16:45
#43
He he ud med lortet ja
Vi tilbyder markedets bedste kurser inden for webudvikling