Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const startDate = "01-05-2020";
- const endDate = "31-07-2020";
- const getRangeMonth = (startDate, endDate) => {
- /* CONFIG VARIABLE */
- const monthNames = [
- "Jan",
- "Feb",
- "Mar",
- "Apr",
- "Mei",
- "Jun",
- "Jul",
- "Agu",
- "Sep",
- "Okt",
- "Nov",
- "Des",
- ];
- const startDateSplit = startDate.split("-");
- const endDateSplit = endDate.split("-");
- const startYear = Number(startDateSplit[2]);
- const endYear = Number(endDateSplit[2]);
- const startMonth = Number(startDateSplit[1]) - 1;
- const endMonth = Number(endDateSplit[1]) - 1;
- /* MAIN VARIABLE */
- let rangeMonthInAYear = [];
- let monthRange = [];
- let dateBar = [];
- /* CHECK IF IS LEAP YEAR */
- const leapYear = (year) => {
- if (Number(year) % 4 === 0) {
- if (Number(year) % 100 === 0) {
- if (Number(year) % 400 === 0) {
- return true;
- } else {
- return false;
- }
- } else {
- return true;
- }
- } else {
- return false;
- }
- };
- /* GENERATE DATE BAR */
- const generateDateBar = (dateStart, dateEnd, month, year) => {
- for (let i = dateStart; i <= dateEnd; i++) {
- const dateVar = `${i < 10 ? `0${i}` : i}/${
- month < 10 ? `0${month}` : month
- }/${year}`;
- dateBar.push(dateVar);
- }
- };
- /* COMPLICATED LOGIC */
- // Generate rangeMonthInAYear
- if (startYear === endYear) {
- rangeMonthInAYear.push(endMonth - startMonth);
- } else {
- for (let i = startYear; i <= endYear; i++) {
- if (startYear === i) {
- rangeMonthInAYear.push(11 - startMonth);
- } else if (endYear === i) {
- rangeMonthInAYear.push(0 + endMonth);
- } else {
- rangeMonthInAYear.push(11);
- }
- }
- }
- // Generate monthRange
- for (let i = 0; i < rangeMonthInAYear.length; i++) {
- for (let j = 0; j <= rangeMonthInAYear[i]; j++) {
- if (rangeMonthInAYear.length !== 1) {
- if (i === rangeMonthInAYear.length - 1) {
- monthRange.push(0 + j);
- } else {
- monthRange.push(11 - rangeMonthInAYear[i] + j);
- }
- } else {
- monthRange.push(startMonth + j);
- }
- }
- }
- // Generate Date
- let yearGenerateDate = startYear;
- for (let i = 0; i < monthRange.length; i++) {
- if (monthRange[i] === 0) yearGenerateDate++;
- if (monthRange[i] === 1) {
- if (leapYear(yearGenerateDate)) {
- generateDateBar(1, 29, monthRange[i] + 1, yearGenerateDate);
- } else {
- generateDateBar(1, 28, monthRange[i] + 1, yearGenerateDate);
- }
- } else {
- if (
- monthRange[i] === 0 ||
- monthRange[i] === 2 ||
- monthRange[i] === 4 ||
- monthRange[i] === 6 ||
- monthRange[i] === 7 ||
- monthRange[i] === 9 ||
- monthRange[i] === 11
- ) {
- generateDateBar(1, 31, monthRange[i] + 1, yearGenerateDate);
- } else {
- generateDateBar(1, 30, monthRange[i] + 1, yearGenerateDate);
- }
- }
- }
- // console.log(rangeMonthInAYear);
- // console.log(monthRange)
- return dateBar;
- };
- const result = getRangeMonth(startDate, endDate);
- console.log(result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement