Guest User

Untitled

a guest
May 23rd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. import moment from 'moment';
  2.  
  3. const getCalendarGrid = (year, month) => {
  4.  
  5. let ret = [];
  6.  
  7. const firstDayOfMonth = moment([year, month - 1, 1]);
  8. const firstDayOfMonthIndex = firstDayOfMonth.day();
  9.  
  10. // grid row
  11. let row = [];
  12.  
  13. // left padding of the first row with nulls
  14. for (let i = 1; i < firstDayOfMonthIndex; i++) {
  15. row.push(null);
  16. }
  17.  
  18. let date = firstDayOfMonth;
  19. // while we stay in the same month
  20. while (date.month() === month - 1) {
  21. // check if this row is already full
  22. if (row.length === 7) {
  23. ret.push(row);
  24. // start new row
  25. row = [];
  26. }
  27.  
  28. // add current date to the row
  29. row.push(date.date());
  30.  
  31. // next date
  32. date = date.add(1, 'd')
  33. }
  34.  
  35. // right padding of last row with nulls
  36. for (let i = row.length; i < 7; i++) {
  37. row.push(null)
  38. }
  39. ret.push(row);
  40.  
  41. //
  42. return ret
  43. };
  44.  
  45. export default getCalendarGrid;
Add Comment
Please, Sign In to add comment