Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Kalendarz tygodniowy PHP
CichyBaczek
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.05.2015
Skąd: Nie wiem

Ostrzeżenie: (0%)
-----


Witam.
Mam takowy problem, którego kompletnie nie umiem zrobić. Muszę zrobić projekt, w którym mam takie oto zadanie:
"Utwórz kalendarz tygodniowy z przyciskami nawigacyjnymi który wyświetli nr aktualnego tygodnia, wyróżnij aktualna datę oraz nazwę miesiąca. Przyciski pozwalają przełączać się między tygodniami."
Znalazłem taki oto kod, ale nie wiem jak go przerobić, żebym mógł przełączać się co tydzień i żeby wyświetlał tylko jeden tydzień a nie cały miesiąc.
Za pomoc z góry dziękuję.
  1. <?PHP
  2. function printCalendar()
  3. {
  4. $year = date("Y");
  5. $monthNum = date("n");
  6. $daysofmonth = date("t");
  7. $dayofweek = date("w");
  8. $dayofmonth = date("j");
  9. $firstdayofmonth = date("w", mktime(0,0,0,$monthNum, 1, $year));
  10.  
  11. if($dayofweek == 0) $dayofweek = 7;
  12. if($firstdayofmonth == 0) $firstdayofmonth = 7;
  13.  
  14. switch($monthNum){
  15. case 1 : $monthName = "Styczeń";break;
  16. case 2 : $monthName = "Luty";break;
  17. case 3 : $monthName = "Marzec";break;
  18. case 4 : $monthName = "Kwiecień";break;
  19. case 5 : $monthName = "Maj";break;
  20. case 6 : $monthName = "Czerwiec";break;
  21. case 7 : $monthName = "Lipiec";break;
  22. case 8 : $monthName = "Sierpień";break;
  23. case 9 : $monthName = "Wrzesień";break;
  24. case 10 : $monthName = "Październik";break;
  25. case 11 : $monthName = "Listopad";break;
  26. case 12 : $monthName = "Grudzień";break;
  27. }
  28.  
  29. echo("<TABLE border = 1><TR>");
  30. echo("<TD bgcolor=\"yellow\" align=\"center\" colspan=\"7\">");
  31. echo($monthName." ".$year);
  32. echo("</TD></TR><TR>");
  33. ?>
  34. <TR>
  35. <TD align="center" bgcolor="pink">Pn</TD>
  36. <TD align="center" bgcolor="pink">Wt</TD>
  37. <TD align="center" bgcolor="pink">Sr</TD>
  38. <TD align="center" bgcolor="pink">Cz</TD>
  39. <TD align="center" bgcolor="pink">Pi</TD>
  40. <TD align="center" bgcolor="pink">So</TD>
  41. <TD align="center" bgcolor="pink">Nd</TD>
  42. </TR>
  43. <?
  44. $j = $daysofmonth + $firstdayofmonth - 1;
  45.  
  46. for($i = 0; $i < $j; $i++){
  47. if($i < $firstdayofmonth - 1){
  48. echo("<TD bgcolor=\"white\"></TD>");
  49. continue;
  50. }
  51. if(($i % 7) == 0){
  52. echo("</TR><TR>");
  53. }
  54. if(($i - $firstdayofmonth + 2) == $dayofmonth){
  55. $color = "yellow";
  56. }
  57. else{
  58. $color = "green";
  59. }
  60. echo("<TD bgcolor=\"$color\" align=\"center\">");
  61. echo($i - $firstdayofmonth + 2);
  62. echo("</TD>");
  63. }
  64. echo("</TR></TABLE>");
  65. }
  66. printCalendar();
  67. ?>
Powód edycji: [Kshyhoo]: bb-code, tagi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CichyBaczek
post
Post #2





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 13.05.2015
Skąd: Nie wiem

Ostrzeżenie: (0%)
-----


Zrobiłem z kolegą takie coś:
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?PHP
  6.  
  7.  
  8. $year = date("Y");
  9. $monthNum = date("n");
  10. $daysofmonth = date("t");
  11. $dayofweek = date("w");
  12. $dayofmonth = date("j");
  13. $firstdayofmonth = date("w", mktime(0,0,0,$monthNum, 1, $year));
  14.  
  15.  
  16. if (isset($_POST['wstecz']))
  17. {
  18. $fp=fopen("wstecz.txt","w+");
  19. $stare=fread($fp, 100);
  20. $nowe=$stare+1;
  21. fputs($fp, $nowe);
  22.  
  23. $dayofmonth=$dayofmonth-7*$nowe;
  24.  
  25.  
  26. }
  27.  
  28.  
  29. if (isset($_POST['dalej']))
  30. {
  31. $fp=fopen("dalej.txt","w+");
  32. $stare=fread($fp, 100);
  33. $nowe=$stare+1;
  34. fputs($fp, $nowe);
  35.  
  36. $dayofmonth=$dayofmonth+7*$nowe;
  37.  
  38.  
  39. }
  40.  
  41.  
  42.  
  43. if($dayofweek == 0) $dayofweek = 7;
  44. if($firstdayofmonth == 0) $firstdayofmonth = 7;
  45.  
  46. switch($monthNum){
  47. case 1 : $monthName = "Styczeń";break;
  48. case 2 : $monthName = "Luty";break;
  49. case 3 : $monthName = "Marzec";break;
  50. case 4 : $monthName = "Kwiecień";break;
  51. case 5 : $monthName = "Maj";break;
  52. case 6 : $monthName = "Czerwiec";break;
  53. case 7 : $monthName = "Lipiec";break;
  54. case 8 : $monthName = "Sierpień";break;
  55. case 9 : $monthName = "Wrzesień";break;
  56. case 10 : $monthName = "Październik";break;
  57. case 11 : $monthName = "Listopad";break;
  58. case 12 : $monthName = "Grudzień";break;
  59. }
  60.  
  61. echo("<TABLE><TR>");
  62. echo("<TD bgcolor='yellow' align='center' colspan='7'>");
  63. echo($monthName." ".$year);
  64. echo('</TD></TR><TR>');
  65. ?>
  66. <TR>
  67. <TD align="center" bgcolor="pink">Pn</TD>
  68. <TD align="center" bgcolor="pink">Wt</TD>
  69. <TD align="center" bgcolor="pink">Sr</TD>
  70. <TD align="center" bgcolor="pink">Cz</TD>
  71. <TD align="center" bgcolor="pink">Pi</TD>
  72. <TD align="center" bgcolor="pink">So</TD>
  73. <TD align="center" bgcolor="pink">Nd</TD>
  74. </TR>
  75.  
  76. <?php
  77. $j = $daysofmonth + $firstdayofmonth - 1;
  78. $i=$dayofmonth-$dayofweek +4;
  79. $k=1;
  80.  
  81. while ($i < $j){
  82. /* if($i < $firstdayofmonth - 1){
  83.   echo("<TD bgcolor='white'></TD>");
  84.   continue;
  85.   }
  86.  
  87.   if(($i % 7) == 0){
  88.   echo("</TR><TR>");
  89.   }*/
  90. if(($i - $firstdayofmonth + 2) == $dayofmonth){
  91. $color = "yellow";
  92. }
  93. else{
  94. $color = "green";
  95. }
  96. echo("<TD bgcolor='$color' align='center'>");
  97. echo($i - $firstdayofmonth + 2);
  98. echo("</TD>");
  99.  
  100.  
  101. if($dayofweek==1 and $i - $firstdayofmonth + 2==$dayofmonth+6 )
  102. {
  103. echo ("</table>");
  104. break;}
  105.  
  106.  
  107. if($dayofweek==2 and $i - $firstdayofmonth + 2==$dayofmonth+5 )
  108. {
  109. echo ("</table>");
  110. break;}
  111.  
  112.  
  113. if($dayofweek==3 and $i - $firstdayofmonth + 2==$dayofmonth+4 )
  114. {
  115. echo ("</table>");
  116. break;}
  117.  
  118.  
  119. if($dayofweek==4 and $i - $firstdayofmonth + 2==$dayofmonth+3 )
  120. {
  121. echo ("</table>");
  122. break;}
  123.  
  124.  
  125. if($dayofweek==5 and $i - $firstdayofmonth + 2==$dayofmonth+2 )
  126. {
  127. echo ("</table>");
  128. break;}
  129.  
  130. if($dayofweek==6 and $i - $firstdayofmonth + 2==$dayofmonth+1 )
  131. {
  132. echo ("</table>");
  133. break;}
  134.  
  135. if($dayofweek==7 and $i - $firstdayofmonth + 2==$dayofmonth+0 )
  136. {
  137. echo ("</table>");
  138. break;}
  139. $i++;
  140. }
  141.  
  142. /**/
  143.  
  144.  
  145. ?>
  146. <form action="index.php" method="POST">
  147. <button name="wstecz" > wstecz </button>
  148. <button name="dalej" > dalej </button>
  149. </form>
  150.  
  151. </body>
  152. </html>


Gdy wciskam przyciski to przeskakuje mi tylko o jeden tydzień i nie umiem zrobić pętli żeby za każdym razem gdy wcisne przycisk, przechodziło mi na kolejny tydzień.
Za odpowiedź z góry dziękuję.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 30.12.2025 - 17:54