嗨,我是c#
和編程一般我一直在嘗試學習適應其他人的代碼下面的代碼我已經改變了代碼,因爲我想要計算的金額在一個月內剩餘的工作日,但問題是代碼運行在一個月的天數,所以這個月有29天但代碼錯誤代碼運行到30日我找不出哪個部分代碼更改任何幫助將是巨大的c#如何計算一個月剩餘的工作日
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();
}
}
你並不需要實現'GetDaysInMonth'自己。該框架已經包含「DateTime.DaysInMonth」。你的閏年邏輯很醜陋(它也重複了框架代碼)。您可以使用模運算符來計算任意年份的跳躍。 – CodesInChaos 2012-02-20 22:50:26
我在5分鐘內寫出來表達如何去做,而不是最有效的方法。 – user1054326 2012-02-21 01:27:57