2016-11-29 75 views
0

对于从2016/11/29到2016/12/05的一周时间间隔,VB.NET中是否有一些预先打包的功能用于返回数字间隔(== 2)的month_1和间隔(== 5)的month_2中的天数?对于一个星期完全在一个给定的月份内下降,间隔的month_1的天数将为7,在month_2的间隔将为0.VB:每月报告一个随机周间隔的数字日期

+0

我做你的问题的重新格式化的一点点,我转换的日期以ISO格式('YYYY/MM/dd')否则日期可能会令人困惑。 – 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

感谢您指出错字Blackwood,我已经纠正了这些错误。 – 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 

你可以这样调用该函数:

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

在这个问题中,这个星期从星期二开始。 – Blackwood

+0

@Blackwood好点。当我写回答时,我重新解释了这个问题。我相信代码将会正常工作,因为它不依赖于“传统”的一周。感谢您指出了这一点。 – JerryM

相关问题