Avatar billede thomasclausen Nybegynder
04. oktober 2004 - 15:20 Der er 10 kommentarer og
1 løsning

Simpelt kalender-script

Hej Eksperter

Jeg har støvet et simpelt kalender-script op på nettet og er så ved at rette det til. Før vidste det søndag før mandag, men vil jeg godt have rettet, men det var åbenbart ikke så let som jeg først troede!!
Det egentlige problem er at scriptet ikke kan finde ud af at sætte 6 'kasser' ind før dato'en når det er en søndag. og heller ikke finde ud af at lade være med at sætte en ekstra række 'kasser' ind hvis sidste dag i måneden er en søndag!!
Håber der er en som kan hjælpe.

Har lagt siden ud på følgende adresse: http://projekter.thomasclausen.dk/exp/kalender.php

På forhånd tak
Thomas Clausen
Avatar billede bojo Nybegynder
04. oktober 2004 - 19:01 #1
Kan noget af dit prob være at O = søndag - burde det ikke være 0 = søndag
Avatar billede thomasclausen Nybegynder
04. oktober 2004 - 23:09 #2
Nej for det er bare noget jeg selv har skrevet for lige selv at huske det :-)
Men ved ikke om det ville hjælpe hvis jeg postede hele mit script?
Avatar billede bojo Nybegynder
04. oktober 2004 - 23:12 #3
måske en ide :-)
Avatar billede thomasclausen Nybegynder
05. oktober 2004 - 08:09 #4
<? if(!isset($maaned)) {
    $maaned = date(n);
}
if(!isset($aar)) {
    $aar = date(Y);
}

if($maaned == "1") { $maanedtekst = "Januar"; } elseif($maaned == "2") { $maanedtekst = "Februar"; } elseif($maaned == "3") { $maanedtekst = "Marts"; } elseif($maaned == "4") { $maanedtekst = "April"; } elseif($maaned == "5") { $maanedtekst = "Maj"; } elseif($maaned == "6") { $maanedtekst = "Juni"; } elseif($maaned == "7") { $maanedtekst = "Juli"; } elseif($maaned == "8") { $maanedtekst = "August"; } elseif($maaned == "9") { $maanedtekst = "September"; } elseif($maaned == "10") { $maanedtekst = "Oktober"; } elseif($maaned == "11") { $maanedtekst = "November"; } elseif($maaned == "12") { $maanedtekst = "December"; }

$days_in_month = date(t, mktime(0, 0, 0, $maaned, 1, $aar));
$day_of_week = date(w, mktime(0, 0, 0, $maaned, 1, $aar)); ?>

<table width="210" border="0" cellpadding="0" cellspacing="1" align="center">
    <tr align="center" valign="middle">
        <td width="30" height="35" colspan="7" class="tekst" bgcolor="#77B8C0"><b><? echo $maanedtekst ?> <? echo $aar ?></b></td>
    </tr>
    <tr align="center" valign="middle">
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>M</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>T</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>O</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>T</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>F</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>L</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>S</b></td>
    </tr>
    <tr>
    <? if($day_of_week > 1) { ?>
        <? for($n = 1; $n < $day_of_week; $n++) { ?>
            <td width="30" height="25" align="center" valign="middle" class="tekst">&nbsp;</td>
        <? } ?>
    <? } ?>
   
    <? for($day_in_month = 1; $day_in_month < $days_in_month + 1; $day_in_month++) { ?>
        <? if($day_of_week % 7 == 0) { ?>
            <tr>
        <? } ?>
       
        <? $date_no = date(j, mktime(0, 0, 0, $maaned, $day_in_month, $aar));
        $day_of_week = date(w, mktime(0, 0, 0, $maaned, $day_in_month, $aar)); ?>
       
        <td width="30" height="25" align="center" valign="middle" class="tekst"><? echo $date_no ?></td>
       
        <? if($day_of_week % 7 == 0) { ?>
            </tr>
        <? } ?>
       
        <? if($day_of_week < 7 && $day_in_month == $days_in_month) { ?>
            <? for($n = $day_of_week; $n < 7; $n++) { ?>
                <td width="30" height="25" align="center" valign="middle" class="tekst">&nbsp;</td>
            <? } ?>
        <? } ?>
       
    <? } ?>
    </tr>
</table>
Avatar billede thomasclausen Nybegynder
05. oktober 2004 - 08:20 #5
lige en lille rettelse!

<? if($day_of_week == 1) { ?>
    <tr>
<? } ?>

<? if($day_of_week == 0) { ?>
    </tr>
<? } ?>
Avatar billede bojo Nybegynder
05. oktober 2004 - 08:23 #6
den tage vi med :-)
Avatar billede bojo Nybegynder
05. oktober 2004 - 09:39 #7
prøv dette, jeg har tilladt mig at rette lidt andet også


<?
    echo "<html><body>";
    if(!isset($maaned)) {
        $maaned = date("n");
    }
   
    if(!isset($aar)) {
        $aar = date("Y");
    }

    $md = array( "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" );
    $maanedtekst = $md[$maaned-1];
   
    $days_in_month = date("t", mktime(0, 0, 0, $maaned, 1, $aar));
    $day_of_week = date("w", mktime(0, 0, 0, $maaned, 1, $aar));
    echo $day_of_week;
    switch ( $day_of_week ) {
        case 0:
            $day_of_week = 6;
            break;
        default:
            $day_of_week--;
        }
   
   
    echo "
        <table width='210' border='0' cellpadding='0' cellspacing='1' align='center'>
            <tr align='center' valign='middle'>
                <td width='30' height='35' colspan='7' class='tekst' bgcolor='#77B8C0'><b>$maaned $day_of_week $maanedtekst $aar</b></td>
            </tr>
            <tr align='center' valign='middle'>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>M</b></td>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>T</b></td>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>O</b></td>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>T</b></td>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>F</b></td>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>L</b></td>
                <td width='30' height='25' class='tekst' bgcolor='#77B8C0'><b>S</b></td>
            </tr>
            <tr>
    ";
   
    if($day_of_week > 1) {
        for($n = 0; $n < $day_of_week; $n++) {
            echo "<td width='30' height='25' align='center' valign='middle' class='tekst'>&nbsp;</td>";
        }
    }
   
    for($day_in_month = 1; $day_in_month < $days_in_month + 1; $day_in_month++) {
        if($day_of_week % 7 == 0) {
            echo "<tr>";
        }
       
        $date_no = date("j", mktime(0, 0, 0, $maaned, $day_in_month, $aar));
        $day_of_week = date("w", mktime(0, 0, 0, $maaned, $day_in_month, $aar));
       
        echo "<td width='30' height='25' align='center' valign='middle' class='tekst'>$date_no</td>";
       
        if($day_of_week % 7 == 0) {
            echo "</tr>";
        }
       
        if($day_of_week < 7 && $day_in_month == $days_in_month) {
          for($n = $day_of_week; $n < 7; $n++) {
                echo "<td width='30' height='25' align='center' valign='middle' class='tekst'>&nbsp;</td>";
          }
        }
       
    }

    echo "</tr></table>
            </body>
            </html>
            ";
           
?>
Avatar billede bojo Nybegynder
05. oktober 2004 - 09:40 #8
hov, du skal lige fjerne mit "debug"

$maaned $day_of_week i
<td width='30' height='35' colspan='7' class='tekst' bgcolor='#77B8C0'><b>$maaned $day_of_week $maanedtekst $aar</b></td>
Avatar billede thomasclausen Nybegynder
05. oktober 2004 - 10:06 #9
Okay har også selv lige fundet en løsning lidt ala din, så poster lige mit script igen, hvis der er andre som evt. kunne bruge det!!
Men lav et svar så du kan få dine point!
Avatar billede thomasclausen Nybegynder
05. oktober 2004 - 10:08 #10
<br>
<br>
<? if($maaned == "") {
    $maaned = date(n);
}
if($aar == "") {
    $aar = date(Y);
}

$maanedtekst = array('', 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');

$days_in_month = date(t, mktime(0, 0, 0, $maaned, 1, $aar));
$day_of_week = date(w, mktime(0, 0, 0, $maaned, 1, $aar)) - 1;
if ($day_of_week == -1) {
    $day_of_week = 6;
} ?>
<center>
<? if($maaned == "1") { ?>
    <a href="?side=<? echo $side ?>&aar=<? echo $aar - 1 ?>&maaned=<? echo 12 ?>">forrige</a>
<? } else { ?>
    <a href="?side=<? echo $side ?>&aar=<? echo $aar ?>&maaned=<? echo $maaned - 1 ?>">forrige</a>
<? } ?>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<? if($maaned == "12") { ?>
    <a href="?side=<? echo $side ?>&aar=<? echo $aar + 1 ?>&maaned=<? echo 1 ?>">n&aelig;ste</a>
<? } else { ?>
    <a href="?side=<? echo $side ?>&aar=<? echo $aar ?>&maaned=<? echo $maaned + 1 ?>">n&aelig;ste</a>
<? } ?>
</center>
<br>
<table width="210" border="0" cellpadding="0" cellspacing="1" align="center">
    <tr align="center" valign="middle">
        <td width="30" height="35" colspan="7" class="tekst" bgcolor="#77B8C0"><b><? echo $maanedtekst[$maaned] ?> <? echo $aar ?></b></td>
    </tr>
    <tr align="center" valign="middle">
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>M</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>T</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>O</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>T</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>F</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>L</b></td>
        <td width="30" height="25" class="tekst" bgcolor="#77B8C0"><b>S</b></td>
    </tr>
    <tr>
    <? if($day_of_week <> 0) { ?>
        <? for($n = 0; $n < $day_of_week; $n++) { ?>
            <td width="30" height="25" align="center" valign="middle" class="tekst">&nbsp;</td>
        <? } ?>
    <? } ?>
    <? for($day_in_month = 1; $day_in_month <= $days_in_month; $day_in_month++) { ?>
        <? if($day_of_week == 0) { ?>
            <? for ($i = 0; $i < $day_of_wk; $i++) { ?>
                <tr>
            <? } ?>
        <? } ?>
        <? $date_no = date(j, mktime(0, 0, 0, $maaned, $day_in_month, $aar));
        $day_of_week = date(w, mktime(0, 0, 0, $maaned, $day_in_month, $aar)) - 1;
        if ($day_of_week == -1) {
            $day_of_week = 6;
        } ?>
        <td width="30" height="25" align="center" valign="middle" class="tekst"><? echo $date_no ?></td>
        <? if($day_of_week == 6) { ?>
            </tr>
        <? } ?>
        <? if($day_of_week < 6 && $day_in_month == $days_in_month) { ?>
            <? for($n = $day_of_week; $n < 6; $n++) { ?>
                <td width="30" height="25" align="center" valign="middle" class="tekst">&nbsp;</td>
            <? } ?>
        <? } ?>
    <? } ?>
    </tr>
</table>
Avatar billede bojo Nybegynder
05. oktober 2004 - 10:09 #11
fino
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