2016-11-29 7 views
0

2016/11/29から2016/12/05にかけて1週間の間隔で、VB.NETに数を返すためのパッケージ済みの機能がいくつかあります間隔(== 2)のmonth_1と間隔(== 5)のmonth_2の日数のうちどれですか?一定の月に完全に下降している週の場合、間隔のうちmonth_1の日数は7になり、その間隔のmonth_2は0になります。VB:ランダムな週間隔の月にnum日を報告する

+0

そうしないと、日付が混乱する可能性があります。 – Enigmativity

答えて

0

私はまだ仕事が完了すると思います試して。私はまだ利用可能なこの種のための缶詰め機能があるかどうかを知りたいのですか?

If (current_date.AddDays(7).Month() = current_date.Month()) Then 
    num_days_in_mon1 = 7 
    num_days_in_mon2 = 0 
Else 
    num_days_in_mon2 = current_date.AddDays(7).Day() 
    num_days_in_mon1 = 7 - num_days_in_mon2 
End If 
+1

あなたはタイプミスがあると思います。最後のステートメントの次は 'num_days_in_mon1 = 7 - num_days_in_mon2'です。 – Blackwood

+0

これが必要な答えでない場合は、それを削除して質問を編集して、このコードを追加して質問の意味を説明することができます。 – Blackwood

+0

私は誤植を指摘してくれてありがとう、ブラックウッド、私はこの投稿を閲覧する人のためにそれを修正しました。 – user2256085

1

私が知っているような助けはありません。ここではDaysInMonthメソッドが役立ちます。

Private Sub DaysInWeek(StartOfPeriod As Date, ByRef Month_1 As Integer, ByRef Month_2 As Integer) 
    Month_1 = Date.DaysInMonth(StartOfPeriod.Year, StartOfPeriod.Month) - StartOfPeriod.Day + 1 
    If Month_1 > 7 Then Month_1 = 7 
    If Month_1 < 7 Then Month_2 = 7 - Month_1 Else Month_2 = 0 
End Sub 

あなたはこのように関数を呼び出すことができます。私はあなたの質問の再フォーマットを少しやったと私は( `YYYY/MM/dd`)ISO形式に日付を変換し

Dim w1, w2 As Integer 
DaysInWeek(New Date(2016, 11, 29), w1, w2) 
+0

問題は、火曜日に始まる週です。 – Blackwood

+0

@Blackwood良い点。私が私の答えを書いたとき、私はその質問を再解釈した。私はコードが "伝統的な"週に依存していないので、コードは正しく動作すると信じています。これを指摘してくれてありがとう。 – JerryM

関連する問題