Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Output the day of the week, delivers me 2x the same day

I want to display the days of the week based on the days in a month. Now it is the case that Sunday is always counted twice. However, when I open the debugger and set a breakpoint in the for loop, the "0" for Sunday is only counted once. How so ?

enter image description here

function getDayName(dateStr, locale) {
var date = new Date(dateStr);
return date.toLocaleDateString(locale, { weekday: "long" });
}

const Items = () => {
let array = [];
const d = new Date();
let tageImMonat = daysInMonth(d.getMonth() + 1, d.getFullYear());

for (var i = 1; i <= tageImMonat; i++) {
var newDate = new Date(d.getFullYear(), d.getMonth(), i);
var day = getDayName(newDate, "de-DE");
if (newDate.getDay() === 0) {
  //if Sunday
  array.push(
    <Item sx={{ backgroundColor: "red", textAlign: "left" }}>
      {i} {day}
    </Item>
  );
}
if (newDate.getDay() === 6) {
  //if Saturday
  array.push(
    <Item sx={{ backgroundColor: "lightgrey", textAlign: "left" }}>
      {i} {day}
    </Item>
  );
} else if (newDate.getDay() !== 0 || newDate.getDay() !== 6) {
  array.push(
    <Item sx={{ textAlign: "left" }}>
      {i} {day}
    </Item>
   );
  }
}

  return array;
};

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Try like this:

function getDayName(dateStr, locale) 
{
  var date = new Date(dateStr);
  return date.toLocaleDateString(locale, { weekday: "long" });
}

function Items()
{
  const array = [];
  const d = new Date();
  const tageImMonat = daysInMonth(d.getMonth() + 1, d.getFullYear());

  for (let i = 1; i <= tageImMonat; i++) 
  {
    const newDate = new Date(d.getFullYear(), d.getMonth(), i);
    const day = getDayName(newDate, "de-DE");
    switch (newDate.getDay())
    {
      case 0:
        //if Sunday
        array.push(
          <Item sx={{ backgroundColor: "red", textAlign: "left" }}>
            {i} {day}
          </Item>
        );
        break;
      case 6:
        //if Saturday
        array.push(
          <Item sx={{ backgroundColor: "lightgrey", textAlign: "left" }}>
            {i} {day}
          </Item>
        );
        break;
      default:
        array.push(
          <Item sx={{ textAlign: "left" }}>
            {i} {day}
          </Item>
        );
    }
  }

  return array;
}
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading