Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. function calendar(arr) {
  2. let monthNames = ["January", "February", "March", "April", "May", "June",
  3. "July", "August", "September", "October", "November", "December"
  4. ];
  5.  
  6. let selector = $('#content');
  7.  
  8. let day = Number(arr[0]);
  9. let month = Number(arr[1]);
  10. let year = Number(arr[2]);
  11.  
  12. let table = $('<table>');
  13. let caption = $('<caption>').text(`${monthNames[month - 1]} ${year}`);
  14. let tbody = $('<tbody>');
  15. let trDays = $('<tr>');
  16.  
  17. for (let i = 0; i < 7; i++) {
  18. let th = $('<th>').text(calcDay(i));
  19. trDays.append(th);
  20. }
  21.  
  22. table.append(caption);
  23. tbody.append(trDays);
  24.  
  25. let days = daysInMonth(month, year);
  26. let firstDay = new Date(year, month - 1, 1).getDay();
  27. let countDays = 1;
  28. let whenToStart = false;
  29. console.log(firstDay);
  30. console.log(days);
  31. while (true) {
  32.  
  33. if (countDays > days) {
  34. break;
  35. }
  36.  
  37. let tr = $('<tr>');
  38.  
  39. for (let i = 1; i <= 7; i++) {
  40.  
  41. let td = $('<td>');
  42.  
  43. if(day === countDays){
  44. $(td).css('background-color', 'orange');
  45. }
  46.  
  47. if (Number(firstDay) === i) {
  48. whenToStart = true;
  49. }
  50. if (countDays <= Number(days) && whenToStart === true){
  51. td.text(countDays);
  52. countDays++;
  53. }
  54. tr.append(td);
  55. }
  56. tbody.append(tr);
  57. }
  58. table.append(tbody);
  59. table.appendTo(selector);
  60.  
  61. function calcDay(num) {
  62. let day;
  63. switch (num) {case 0:day = 'Mon';break;
  64. case 1:day = 'Tue';break;
  65. case 2:day = 'Wed';break;
  66. case 3:day = 'Thu';break;
  67. case 4:day = 'Fri';break;
  68. case 5:day = 'Sat';break;
  69. case 6:day = 'Sun';break;
  70. }
  71. return day;
  72. }
  73.  
  74. function daysInMonth(m, y) {
  75. return new Date(y, m, 0).getDate();
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement