2017-10-05 5 views
-1

私はLINQの初心者です。この2つのクエリをどのように動作させようと努力しても、結果として常にゼロになります。私は1ヶ月の営業日と合計日数を計算するためにすべてを試しました。 MDateは日付ピッカーに、BusinessDaysはテキストボックスに、TotalDaysInMonthは別のテキストボックスにバインドされます。LINQクエリがゼロを返すのはなぜですか?

選択した月の正しい値が表示されるようにこれらのクエリを修正してもらえますか? (例:9月:20営業日、合計30日)

public class LocationViewModel : INotifyPropertyChanged 
{ 

    public LocationViewModel() 
    {  
     SetBusinessDays(); 
     SetTotalDaysInMonth(); 
    } 

    public DateTime mDate = DateTime.Now; 

    public DateTime MDate 
    { 
     get { return mDate; } 
     set 
     { 
      if (value == mDate) 
      { 
       return; 
      } 
      else 
      { 
       mDate = value; 
       OnPropertyChanged("MDate"); 

       SetBusinessDays(); 
       SetTotalDaysInMonth(); 
      } 
     } 
    } 

    int _businessDays; 

    public int BusinessDays 
    { 
     get { return _businessDays; } 
     set 
     { 
      _businessDays = value; 
      OnPropertyChanged("BusinessDays"); 
     } 
    } 

    int _totalDaysInMonth; 

    public int TotalDaysInMonth 
    { 
     get { return _totalDaysInMonth; } 
     set 
     { 
      _totalDaysInMonth = value; 
      OnPropertyChanged("TotalDaysInMonth"); 
     } 
    } 


    private void SetBusinessDays() 

    { 
     int BusinessDays = Enumerable.Range(1, DateTime.DaysInMonth(MDate.Year, MDate.Month)) 
          .Select(day => new DateTime(MDate.Year, MDate.Month, day)) 
          .Count(d => d.DayOfWeek != DayOfWeek.Sunday && 
             d.DayOfWeek != DayOfWeek.Saturday); 
    } 

    private void SetTotalDaysInMonth() 
    { 
     int TotalDaysInMonth = Enumerable.Range(1, DateTime.DaysInMonth(MDate.Year, MDate.Month)) 
          .Select(day => new DateTime(MDate.Year, MDate.Month, day)) 
          .Count(); 
    } 
} 

ありがとうございます。

+5

あなたのプロパティではなく、ローカル変数を設定しています。 – juharr

+3

ローカル変数の 'int'宣言を削除します。 –

+2

私は22.を得る[DotNetFiddle](https://dotnetfiddle.net/ZNA9eJ)。問題はあなたのLINQではありません。 –

答えて

1

両方のメソッドの中で、プロパティを設定するのではなく、ローカル変数を宣言しています。 C#では、プロパティにアクセスするたびに型を指定する必要はありません。メソッド内のintリテラルを削除します。

+1

それはそれでした。私はそれを見つけられないとは信じられません。そんなにありがとう、あなたは私に多くの時間と労力をかけてくれました。素晴らしい一日を過ごす! – iCosmin

関連する問題