Guest User

Untitled

a guest
Apr 10th, 2011
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. <?php
  2. // true visar veckonr till höger, false visar till vänster
  3. $visa_vecka_h = false;
  4. ?>
  5.  
  6. <?php
  7. // kontrollera månaden
  8. if (isset($_GET['manad']) AND preg_match("/^[0-9]+$/", $_GET['manad'])) {
  9. $manad = $_GET['manad'];
  10. } else {
  11. $manad = date("n");
  12. }
  13.  
  14. // kontrollera årtalet
  15. if (isset($_GET['ar']) AND preg_match("/^[0-9]+$/", $_GET['ar'])) {
  16. $ar = $_GET['ar'];
  17. } else {
  18. $ar = date("Y");
  19. }
  20.  
  21. $svManader = Array('Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'July' ,'Augusti', 'September', 'Oktober', 'November', 'December' );
  22.  
  23. // Antalet dagar i månaden
  24. $dagarImanaden = date("t", mktime(0,0,0,$manad,1,$ar));
  25.  
  26. // Första dagen i månaden
  27. // 0 = Sön, 1 = Mån osv...
  28. $forstaDagen = date("w", mktime(0,0,0,$manad,1,$ar));
  29.  
  30. // Sista dagen i månaden
  31. // 0 = Sön, 1 = Mån osv...
  32. $sistaDagen = date("w", mktime(0,0,0,$manad,$dagarImanaden,$ar));
  33.  
  34. // Ändra ordningen så att söndag kommer sist i veckan istället för först
  35. if ($forstaDagen == 0) {
  36. $forstaDagen = 7;
  37. }
  38.  
  39. // Kör samma med sista dagen i månaden
  40. if ($sistaDagen == 0) {
  41. $sistaDagen = 7;
  42. }
  43.  
  44. // Räkna ut föregående månad och år
  45. if ($manad == 1) {
  46. $prevManad = 12;
  47. $prevAr = $ar-1;
  48. } else {
  49. $prevManad = $manad-1;
  50. $prevAr = $ar;
  51. }
  52.  
  53. // Räkna ut nästa månad och år
  54. if ($manad == 12) {
  55. $nextManad = 1;
  56. $nextAr = $ar+1;
  57. } else {
  58. $nextManad = $manad+1;
  59. $nextAr = $ar;
  60. }
  61.  
  62. // Skriv ut kalendern
  63. echo "<table width='100%' cellspacing='0' cellpadding='3' border='0' bordercolor='#C6DDFF'>\n";
  64. echo "<tr class='tableheader'>\n";
  65. $num = $manad - 1;
  66. echo "<td colspan='8'><strong><a href='?manad=$prevManad&amp;ar=$prevAr' title='Föregående månad'>&laquo;</a> $svManader[$num] $ar <a href='?manad=$nextManad&amp;ar=$nextAr' title='Nästa månad'>&raquo;</a></strong></td>\n";
  67. echo "</tr>\n";
  68. echo "<tr class='tableheader'>\n";
  69. if(!$visa_vecka_h) {
  70. echo "<td>&nbsp;</td>\n";
  71. }
  72. echo "<td><strong>Mån</strong></td>\n";
  73. echo "<td><strong>Tis</strong></td>\n";
  74. echo "<td><strong>Ons</strong></td>\n";
  75. echo "<td><strong>Tor</strong></td>\n";
  76. echo "<td><strong>Fre</strong></td>\n";
  77. echo "<td><strong>Lör</strong></td>\n";
  78. echo "<td><strong>Sön</strong></td>\n";
  79. if($visa_vecka_h) {
  80. echo "<td>&nbsp;</td>\n";
  81. }
  82. echo "</tr>\n";
  83. echo "<tr>\n";
  84.  
  85. if(!$visa_vecka_h) {
  86. // Skriv ut första veckonummret
  87. echo "<td class='tableheader'>". "V.". date('W', mktime(0, 0, 0, $manad, $i, $ar))."</td>\n";
  88. }
  89.  
  90. // Loopa ut tomma dagar om den 1:a inte är en måndag
  91. $a = 0;
  92. for ($i = 1; $i < $forstaDagen; $i++) {
  93. echo "<td class='tableempty'>&nbsp;</td>";
  94. $a = $i;
  95. }
  96.  
  97. // Loopa ut alla dagar i månaden
  98. for ($i = 1; $i <= $dagarImanaden; $i++) {
  99. // är veckan slut så börjar en ny rad
  100. if (date("w",mktime(0,0,0,$manad,$i-1,$ar)) == 0 && $a != 0) {
  101. if($visa_vecka_h) {
  102. echo "<td class='tableheader'>". "V.". date('W', mktime(0, 0, 0, $manad, $i-1, $ar))."</td>\n";
  103. echo "</tr>\n<tr>\n";
  104. } else {
  105. echo "</tr>\n<tr>\n";
  106. echo "<td class='tableheader'>". "V.". date('W', mktime(0, 0, 0, $manad, $i, $ar))."</td>\n";
  107. }
  108. }
  109. // Skriv ut datumet
  110. if(date("Y") == $ar && date("n") == $manad && date("j") == $i) {
  111. // Det är dagens datum
  112. echo "<td class='tabletoday'><a href='#'>$i</a></td>\n";
  113. } else {
  114. echo "<td class='tabledate'><a href='#'>$i</a></td>\n";
  115. }
  116. $a++;
  117. }
  118.  
  119. // Fyll tabellen med tomma celler tills månaden är slut
  120. for ($i = 7; $i > $sistaDagen; $i--) {
  121. echo "<td class='tableempty'>&nbsp;</td>";
  122. }
  123.  
  124. if($visa_vecka_h) {
  125. // Och så sista cellen med det sista veckonumret
  126. echo "<td class='tableheader'>". "V.". date('W', mktime(0, 0, 0, $manad, $dagarImanaden, $ar))."</td>";
  127. }
  128. // Avsluta tabellraden och tabellen
  129. echo "</tr>\n</table>\n";
  130. ?>
Advertisement
Add Comment
Please, Sign In to add comment