Salut je suis nouveau à c#
et la programmation en général j'ai essayé d'apprendre d'adapter d'autres peuples code le code ci-dessous j'ai changé le code que je veux pour calculer le montant de jours de travail restants dans un mois, mais le problème est le code s'exécute sur le nombre de jours dans un mois donc ce mois-ci a 29 jours mais les erreurs de code que le code s'exécute à la 30e Je ne peux pas savoir quelle partie du code pour changer toute aide serait grandeC# comment calculer les jours ouvrables restants dans un mois
private void days()
{
//Monday to Friday are business days.
var weekends = new DayOfWeek[] { DayOfWeek.Saturday, DayOfWeek.Sunday };
DateTime testing = DateTime.Now;
string month1 = testing.ToString("M ");
string year1 = testing.ToString("yyyy");
int month = Convert.ToInt32(month1);
int year = Convert.ToInt32(year1);
//Fetch the amount of days in your given month.
int daysInMonth = DateTime.DaysInMonth(year, month);
string daysleft = testing.ToString("d ");
int daystoday = Convert.ToInt32(daysleft);
//Here we create an enumerable from 1 to daysInMonth,
//and ask whether the DateTime object we create belongs to a weekend day,
//if it doesn't, add it to our IEnumerable<int> collection of days.
IEnumerable<int> businessDaysInMonth = Enumerable.Range(daystoday, daysInMonth)
.Where(d => !weekends.Contains(new DateTime(year, month, d).DayOfWeek));
//Pretty smooth.
int count = 0;
foreach (var day in businessDaysInMonth)
{
count = count + 1;
}
textBox9.Text = count.ToString();
}
}
Vous n'avez pas besoin de mettre en œuvre 'vous GetDaysInMonth'. Le framework contient déjà 'DateTime.DaysInMonth'. Votre logique de l'année bissextile est moche (elle duplique aussi le code de l'infrastructure). Vous pouvez utiliser l'opérateur modulo pour calculer la gravité pour des années arbitraires. – CodesInChaos
Je l'ai écrit en 5 minutes pour exprimer de comment le faire, pas le moyen le plus efficace de le faire. – user1054326