Hi. Nowdays I programing a code for iCall application on internet. I wrote code which show table with days of month. You can click on day and show you table with hours and minutes. And here is my little problem. Code is fully functional but is big and gauche, I think. Do you have some idea how can I make my code smaller and profesional??? Here is link where you can see result and try it.
[- use Date::Calc qw(:all); %mesiac=(1=>'January', 2=>'February', 3=>'March', 4=>'April', 5=>'May' +, 6=>'June', 7=>'July', 8=>'August', 9=>'September', 10=>'October', 1 +1=>'November', 12=>'December'); %den=(1=>'Monday', 2=>'Tuesday', 3=>'Wednesday', 4=>'Thursday', 5=>'Fr +iday', 6=>'Saturday', 7=>'Sunday'); $day = $fdat{day}; $month = $fdat{month}; $year = $fdat{year}; $dom = Days_in_Month($year,$month); -]
This part of code testing which days will be next or previous and create anchors for these days. This part is big and I think may be write better, but I dont know how. Please write some idea how can I do it better.
This little code generate table with hours and minutes.[$ if ($day == $dom) $] [- if ($month == 12) { $mmonth = 1; $myear = $year+1; } else { $mmonth = $month+1; $myear = $year; } $day1 = $day-2; $day2 = $day-1; $day3 = 1; $day4 = 2; $dow1=Day_of_Week($year,$month,$day1); $dow2=Day_of_Week($year,$month,$day2); $dow3=Day_of_Week($myear,$mmonth,$day3); $dow4=Day_of_Week($myear,$mmonth,$day4); $dow=Day_of_Week($year,$month,$day); -] <center> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day1 +]" +>[+ $den{$dow1} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day2 +]" +>[+ $den{$dow2} +]</a> [+ $den{$dow} +] <a href="?mod=day&month=[+ $mmonth +]&year=[+ $myear +]&day=[+ $day3 + +]">[+ $den{$dow3} +]</a> <a href="?mod=day&month=[+ $mmonth +]&year=[+ $myear +]&day=[+ $day4 + +]">[+ $den{$dow4} +]</a> </center></br> [$ elsif ($day == $dom-1) $] [- if ($month == 12) { $mmonth = 1; $myear = $year+1; } else { $mmonth = $month+1; $myear = $year; } $day1 = $day-2; $day2 = $day-1; $day3 = $day+1; $day4 = 1; $dow1=Day_of_Week($year,$month,$day1); $dow2=Day_of_Week($year,$month,$day2); $dow3=Day_of_Week($year,$month,$day3); $dow4=Day_of_Week($myear,$mmonth,$day4); $dow=Day_of_Week($year,$month,$day); -] <center> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day1 +]" +>[+ $den{$dow1} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day2 +]" +>[+ $den{$dow2} +]</a> [+ $den{$dow} +] <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day3 +]" +>[+ $den{$dow3} +]</a> <a href="?mod=day&month=[+ $mmonth +]&year=[+ $myear +]&day=[+ $day4 + +]">[+ $den{$dow4} +]</a> </center></br> [$ elsif ($day == 2) $] [- if ($month == 1){ $mmonth = 12; $myear = $year-1; } else { $mmonth = $month - 1; $myear = $year; } $mdom = Days_in_Month($myear,$mmonth); $day1 = $mdom; $day2 = 1; $day3 = 3; $day4 = 4; $dow1=Day_of_Week($myear,$mmonth,$day1); $dow2=Day_of_Week($year,$month,$day2); $dow3=Day_of_Week($year,$month,$day3); $dow4=Day_of_Week($year,$month,$day4); $dow=Day_of_Week($year,$month,$day); -] <center> <a href="?mod=day&month=[+ $mmonth +]&year=[+ $myear +]&day=[+ $day1 + +]">[+ $den{$dow1} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day2 +]" +>[+ $den{$dow2} +]</a> [+ $den{$dow} +] <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day3 +]" +>[+ $den{$dow3} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day4 +]" +>[+ $den{$dow4} +]</a> </center></br> [$ elsif ($day == 1) $] [- if ($month == 1) { $mmonth = 12; $myear = $year-1; } else { $mmonth = $month - 1; $myear = $year; } $dom = Days_in_Month($myear,$mmonth); $day1 = $dom-1; $day2 = $dom; $day3 = 2; $day4 = 3; $dow1=Day_of_Week($myear,$mmonth,$day1); $dow2=Day_of_Week($myear,$mmonth,$day2); $dow3=Day_of_Week($year,$month,$day3); $dow4=Day_of_Week($year,$month,$day4); $dow=Day_of_Week($year,$month,$day); -] <center> <a href="?mod=day&month=[+ $mmonth +]&year=[+ $myear +]&day=[+ $day1 + +]">[+ $den{$dow1} +]</a> <a href="?mod=day&month=[+ $mmonth +]&year=[+ $myear +]&day=[+ $day2 + +]">[+ $den{$dow2} +]</a> [+ $den{$dow} +] <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day3 +]" +>[+ $den{$dow3} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day4 +]" +>[+ $den{$dow4} +]</a> </center></br> [$ else $] [- $day1 = $day-2; $day2 = $day-1; $day3 = $day+1; $day4 = $day+2; $dow1=Day_of_Week($year,$month,$day1); $dow2=Day_of_Week($year,$month,$day2); $dow3=Day_of_Week($year,$month,$day3); $dow4=Day_of_Week($year,$month,$day4); $dow=Day_of_Week($year,$month,$day); -] <center> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day1 +]" +>[+ $den{$dow1} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day2 +]" +>[+ $den{$dow2} +]</a> [+ $den{$dow} +] <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day3 +]" +>[+ $den{$dow3} +]</a> <a href="?mod=day&month=[+ $month +]&year=[+ $year +]&day=[+ $day4 +]" +>[+ $den{$dow4} +]</a> </center></br> [$ endif $]
<center>[+ $day +]. [+ $mesiac{$month} +] [+ $year +] & +nbsp; </center> <center> <table width="60%" border="1"> [- $hour = 6 -] [$ while $hour<=20 $] [- $min = 00 -] [$ while $min <= 30 $] <tr> [$ if ($min == 0) $] <td width="20%">[+ $hour +]:[+ $min +][+ $min +]</td> [$ else $] <td width="20%">[+ $hour +]:[+ $min +]</td> [$ endif $] <td> </td> </tr> [- $min += 30 -] [$ endwhile $] [- $hour += 1 -] [$ endwhile $] </table> <a href="?mod=calendar&amonth=[+ $month +]&ayear=[+ $year +]">Back on +the week</a></br> </center>
Thanks for all ideas.
Edited by Chady -- moved node out of `pmsig' div
In reply to Make code smaller and better by Wampa
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |