Je travaille sur un projet avec TimeDomains. Dans ce projet, un TimeDomain doit être transformé en texte écrit.
Par exemple, le domaine temporel suivant est passé comme une chaîne: [[(t2){d5}]*[(h16){h2}]]
déterminer le jour de la semaine en fonction des chiffres
- t est le jour de la semaine avec t1 étant dimanche
- d est le nombre de jours après ce jour-là, y compris ce jour-là, donc (t2) {d5} se lirait "du lundi au vendredi" (vendredi est le 5ème jour après lundi, y compris le lundi)
Le problème ici est que je ne peux pas penser à un moyen de déterminer quel jour d -value représente en fonction de la valeur t. Si d serait une valeur fixe, il serait facile, mais d pourrait être quelque chose de 1 à 7.
Je le code suivant:
string dayFromName;
StringBuilder stringBuilder = new StringBuilder();
foreach (string s in TimeDomain)
{
var indexOfFirstBraceDayFrom = s.IndexOf('t') + 1;
var indexOfLastBraceDayFrom = s.IndexOf(')');
var dayFromTemp = s.Substring(indexOfFirstBraceDayFrom, indexOfLastBraceDayFrom - indexOfFirstBraceDayFrom).Split(' ');
var dayFrom = dayFromTemp[0];
var indexOfFirstBraceDayTo = s.IndexOf('d') + 1;
var indexOfLastBraceDayTo = s.IndexOf('}');
var dayToTemp = s.Substring(indexOfFirstBraceDayTo, indexOfLastBraceDayTo - indexOfFirstBraceDayTo).Split(' ');
var dayTo = dayToTemp[0];
if (dayFrom == "1")
dayFromName = "Sunday";
if (dayFrom == "2")
dayFromName = "Monday";
if (dayFrom == "3")
dayFromName = "Tuesday";
if (dayFrom == "4")
dayFromName = "Wednesday";
if (dayFrom == "5")
dayFromName = "Thursday";
if (dayFrom == "6")
dayFromName = "Friday";
if (dayFrom == "7")
dayFromName = "Saturday";
stringBuilder.Append(dayFromName + "to");
}
Cependant, je ne suis pas sûr de savoir comment définir le jour après "to" basé sur la valeur de D en référence à T. Avez-vous des suggestions?
Vous pouvez utiliser quelque chose comme '(t + d - 1)% 7' –