Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Temporal.PlainDate : propriété dayOfWeek

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

La propriété d'accesseur dayOfWeek des instances de Temporal.PlainDate retourne un entier positif représentant l'indice du jour dans la semaine de cette date, basé sur 1. Les jours de la semaine sont numérotés séquentiellement de 1 à daysInWeek, chaque numéro correspondant à son nom. Elle dépend du calendrier. 1 représente généralement le lundi dans le calendrier, même lorsque les locales utilisant le calendrier peuvent considérer un autre jour comme le premier jour de la semaine (voir Intl.Locale.prototype.getWeekInfo()).

Tous les calendriers couramment pris en charge utilisent des semaines de 7 jours, et vous pouvez généralement vous attendre à ce que cette propriété retourne la même valeur pour la même date dans différents calendriers.

Le mutateur d'accesseur de dayOfWeek est undefined. Vous ne pouvez pas modifier cette propriété directement. Pour créer un nouvel objet Temporal.PlainDate avec la nouvelle valeur souhaitée de dayOfWeek, utilisez la méthode add() ou subtract() avec le nombre approprié de days.

Exemples

Utiliser la propriété dayOfWeek

js
const date = Temporal.PlainDate.from("2021-07-01");
console.log(date.dayOfWeek); // 4 ; jeudi

const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=chinese]");
console.log(date2.dayOfWeek); // 4

Changer la valeur de dayOfWeek

PlainDate ne prend pas en charge la modification directe de dayOfWeek. Pour changer le jour de la semaine, vous devez d'abord déterminer la différence en jours par rapport au jour de la semaine souhaité, puis utiliser add ou subtract pour ajuster la date en conséquence. Par exemple, pour passer au vendredi de cette semaine (avant ou après) :

js
function getDayInSameWeek(date, destDayOfWeek) {
  return date.add({ days: destDayOfWeek - date.dayOfWeek });
}

console.log(
  getDayInSameWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-07-02
console.log(
  getDayInSameWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-02

Pour passer au vendredi suivant :

js
function getNextDayInWeek(date, destDayOfWeek) {
  const distance = destDayOfWeek - date.dayOfWeek;
  return date.add({
    days: distance < 0 ? date.daysInWeek + distance : distance,
  });
}

console.log(
  getNextDayInWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-07-02
console.log(
  getNextDayInWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-09

Pour passer au vendredi précédent :

js
function getPreviousDayInWeek(date, destDayOfWeek) {
  const distance = date.dayOfWeek - destDayOfWeek;
  return date.subtract({
    days: distance < 0 ? date.daysInWeek + distance : distance,
  });
}

console.log(
  getPreviousDayInWeek(Temporal.PlainDate.from("2021-07-01"), 5).toString(),
); // 2021-06-25
console.log(
  getPreviousDayInWeek(Temporal.PlainDate.from("2021-07-03"), 5).toString(),
); // 2021-07-02

Spécifications

Spécification
Temporal
# sec-get-temporal.plaindate.prototype.dayofweek

Compatibilité des navigateurs

Voir aussi