佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1238|回复: 4

Javascript 写 calendar

[复制链接]
发表于 5-5-2012 12:17 PM | 显示全部楼层 |阅读模式
这是小弟最近的功课
要用 Javascript 写一个让 user 输入出生年份,然后就会显示那人出生的那个月份的日历
现在问题来了,小弟在 for loop 方面真的很弱,
不知道如何写一个one dimenson array 类型的 table,
希望各位大大可以帮忙,
我google 了很多 calendar 的 source code,
可是都看不明白 (很多没看过的code)
我老师说普通的又简单的 code就可以写了..
求各位大大帮忙
以下是小弟的半成品.....

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Untitled Document</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  6. </head>

  7. <body>
  8. <script>
  9. var month = ["Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sept","Oct","Nov","Dec"];
  10. var maxDay = ["31","28","31","30","31","30","31","31","30","31","30","31"];
  11. var leapMaxDay = ["31","29","31","30","31","30","31","31","30","31","30","31"];

  12. var inpDOB = prompt("DOB Format : dd/mm/yyyy");
  13. result = inpDOB.split("/");
  14. document.write(result);



  15. function validDate(y,m,d)
  16. {
  17. var err=0;

  18. if(y<1900 || y > 2012)
  19. err++;

  20. if(y%4==0)
  21. maxDays[1] = 29;

  22. if(m<1 || m>12)
  23. err++;

  24. if(d<1 || d>maxDays[m-1])
  25. err++;

  26. if(err>0)
  27. return false;

  28. else
  29. return true;
  30. }

  31. </script>
  32. </body>
  33. </html>
复制代码
回复

使用道具 举报


ADVERTISEMENT

发表于 7-5-2012 02:24 AM | 显示全部楼层
不明白你想要什么
回复

使用道具 举报

发表于 9-5-2012 11:10 PM | 显示全部楼层
不如你举个例子让人比较容易明白你要的是什么
回复

使用道具 举报

 楼主| 发表于 10-5-2012 12:15 AM | 显示全部楼层
比如 user input [12-12-1990]
我就要display 一个 1990年 12月 的 calendar
然后要把12号highlight 起来..
回复

使用道具 举报

发表于 10-5-2012 12:57 PM | 显示全部楼层
本帖最后由 onlylonly 于 10-5-2012 03:00 PM 编辑

回复 1# enzoboy

我老师说普通的又简单的 code就可以写了..


真的很简单的就 ( 2 行code)

  1. <html>

  2. <head>
  3.         <link rel="stylesheet" href="http://jqueryui.com/themes/base/jquery.ui.all.css">
  4.         <script src="http://jqueryui.com/jquery-1.7.2.js"></script>
  5.         <script src="http://jqueryui.com/ui/jquery.ui.core.js"></script>
  6.         <script src="http://jqueryui.com/ui/jquery.ui.widget.js"></script>
  7.         <script src="http://jqueryui.com/ui/jquery.ui.datepicker.js"></script>
  8.         <script>
  9.                 $(function() {
  10.                         $( "#cal" ).datepicker();
  11.                         //07-jan -1978
  12.                         $( "#cal" ).datepicker("setDate", new Date('1978', '00', '07'));
  13.                 });
  14.         </script>
  15.         <title>Really Simple Calendar</title>
  16. </head>
  17. <body>
  18.         <div id="cal"></div>
  19. </body>
  20. </html>
复制代码
怕死被打的就写多一点

  1. <html>

  2. <head>
  3.         <script>               
  4.                 // i.e, last day of feb-2012 is 29
  5.                 function getLastDayOfMonth(dateObj)
  6.                 {
  7.                         var dateOfLastDay = new Date(dateObj.getFullYear(), dateObj.getMonth() + 1, 0);
  8.                         return dateOfLastDay.getDate();
  9.                 }
  10.                
  11.                 // i.e, month start at tuesday
  12.                 // 0 - sun
  13.                 // 1 - mon
  14.                 // ...
  15.                 // 6 - sat
  16.                 function getDayOfMonthStart(dateObj)
  17.                 {
  18.                         var dateOfFirstDay = new Date(dateObj.getFullYear(), dateObj.getMonth(), 1);
  19.                         return dateOfFirstDay.getDay();
  20.                 }
  21.                
  22.                 function printCal(birthDate)
  23.                 {
  24.                         //calendar content initialized with calendar header
  25.                         var calContent = "<tr><td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thr</td><td>Fri</td><td>Sat</td>";
  26.                         var beginPrintingTrigger = false;
  27.                         var day = 1;
  28.                         
  29.                         for(var i = 0; day <= getLastDayOfMonth(birthDate); i++)
  30.                         {
  31.                                 if( i == 0 )
  32.                                         calContent += "<tr>";
  33.                                 else if( i % 7 == 0 )
  34.                                         calContent += "</tr><tr>";
  35.                         
  36.                                 //print empty slot before first day of cal start
  37.                                 if( beginPrintingTrigger == false )
  38.                                 {                        
  39.                                         //start to print?
  40.                                         if( i == getDayOfMonthStart(birthDate))
  41.                                                 beginPrintingTrigger = true;
  42.                                         else
  43.                                         //print empty slot if month not yet started
  44.                                                 calContent += "<td></td>";
  45.                                 }
  46.                                 
  47.                                 if( beginPrintingTrigger == true )
  48.                                 {
  49.                                         //highlight birth day
  50.                                         if( day == birthDate.getDate() )
  51.                                                 calContent += "<td><strong>" + day++ + "</strong></td>";
  52.                                         else
  53.                                         //print normal day
  54.                                                 calContent += "<td>" + day++ + "</td>";
  55.                                 }               
  56.                         }

  57.                         calContent += "</tr>";
  58.                         
  59.                         document.getElementById("cal").innerHTML = calContent;               
  60.                 }
  61.         </script>
  62.         <title>Really Simple Calendar</title>
  63. </head>
  64. <body>
  65.         <table id="cal"></table>
  66.         <script>
  67.                 //birthday at 07-may-1978
  68.                 //new Date(yyyy,mm - 1, dd);
  69.                 printCal(new Date('1978','04','07'));
  70.         </script>
  71. </body>
  72. </html>
复制代码
sample 而已, 自己link function, 自己 error check
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-10-2025 07:48 AM , Processed in 0.096485 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表