Advertisement
Guest User

Untitled

a guest
May 30th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. import React from 'react'
  2. import './calendar.css'
  3. import { Header, Segment, Table } from 'semantic-ui-react'
  4.  
  5. let today = new Date()
  6. let currentMonth = today.getMonth()
  7. let currentYear = today.getFullYear()
  8. let monthsOfYear = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  9. let monthWithYear = monthsOfYear[currentMonth]
  10.  
  11. function daysInMonth(iMonth, iYear) {
  12. return 32 - new Date(iYear, iMonth, 32).getDate();
  13. }
  14.  
  15. class CalendarScheduler extends React.Component {
  16.  
  17. createTable = () => {
  18. let firstDayOfMonth = (new Date(currentYear, currentMonth)).getDay();
  19. let ld = (new Date(today.getFullYear(), today.getMonth() + 1, 0));
  20. let lastDayOfMonth = ld.getDate();
  21. let dateDay = 1;
  22. let table = []
  23. for (let i = 0; i < 6; i++) {
  24. let children = []
  25. for (let j = 0; j < 7; j++) {
  26. if (i === 0 && j < firstDayOfMonth) {
  27. children.push(<Table.Cell key={j} className="dayOff"></Table.Cell>)
  28. }
  29. else if (dateDay > daysInMonth(currentMonth, currentYear)) {
  30. break;
  31. }
  32. else {
  33. if (dateDay === today.getDate() && currentYear === today.getFullYear() && currentMonth === today.getMonth()) {
  34. children.push(<Table.Cell key={j} id={dateDay} className="box green">{dateDay}</Table.Cell>)
  35. } else{
  36.  
  37. children.push(<Table.Cell key={j} id={dateDay} className="boxn">{dateDay}</Table.Cell>)
  38. }
  39. dateDay++;
  40.  
  41. if(dateDay > lastDayOfMonth){
  42. children.push(<Table.Cell key={dateDay} className="dayOff" ></Table.Cell>)
  43. }
  44. }
  45.  
  46. }
  47. table.push(<Table.Row key={i} children={children} />)
  48. }
  49. return table
  50. }
  51.  
  52. render() {
  53. const daysOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
  54. const listDays = daysOfWeek.map((dayName) =>
  55. <Table.HeaderCell key={dayName.toString()}>{dayName}</Table.HeaderCell>
  56. )
  57. return (
  58. <div className="masterContent">
  59. <Header as='h2' attached='top' className="titleCaledar">
  60. {monthWithYear} {currentYear}
  61. </Header>
  62. <Segment attached>
  63. <Table celled fixed singleLine>
  64. <Table.Header>
  65. <Table.Row>
  66. {listDays}
  67. </Table.Row>
  68. </Table.Header>
  69. <Table.Body>
  70. {this.createTable()}
  71. </Table.Body>
  72. </Table>
  73. </Segment>
  74. </div>
  75. )
  76. }
  77. }
  78.  
  79. export default CalendarScheduler;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement