8
votes

Comment puis-je m'assurer qu'une journée est un jour de semaine dans des rails?

J'ai une substitution de message appelée Next_week qui prend essentiellement la date.Today + 7.days.

Cependant, bien que je souhaite toujours envoyer des courriels le week-end, si le prochain_week tombe un week-end, je veux que cela connaisse cela et pousser au lundi.

Comment puis-je faire cela?


0 commentaires

6 Réponses :


1
votes
mail_date = Date.today + 7.days
if mail_date.wday == 0
  mail_date += 1.day
elsif mail_date.wday == 6
  mail_date += 2.days
end

# now send your email on mail_date
Is this helpful?

1 commentaires

Je ne savais pas quelle est une caractéristique. Laisse-moi essayer.



13
votes

Comme ceci:

sunday = 0
saturday = 6
weekend = [saturday, sunday]

mail_date += 1.days while weekend.include?(mail_date.wday)


0 commentaires


2
votes

Vous pouvez utiliser ceci, xxx

check .. xxx


0 commentaires

17
votes

rails 5: xxx

rails 4: xxx


2 commentaires

Je les aime! On dirait le samedi? et tout jour de semaine ? La méthode est implémentée dans Ruby 1.9+, peut-être plus tôt, sur les classes de temps et de date. Homme, qui aurait été utile de savoir il y a quelques années :) merci @marcin


Oh je suppose que cela est en soutien actif? Je n'utilise pas de rails.



2
votes

Généralement, utilisez le business_time code> gem ( https://github.com/bokmann / business_time ), qui résoudra cette question de manière complète. Cette bibliothèque vous permettra de vous adapter à différentes semaines de travail (dimanche au jeudi par exemple) et même vérifier si l'heure est hors du temps de travail.

Votre cas serait p>

def next_week
  0.business_days.after(7.days.from_now)
end


0 commentaires