Vb.net 下周五和下周一

Vb.net 下周五和下周一,vb.net,datetime,Vb.net,Datetime,从今天开始(例如,2020年7月10日星期五),我必须得到下周五的日期(2020年7月17日),所以输出不应该是今天的日期 我还需要从今天开始的下一个第二个星期一(例如,2020年7月10日星期五),输出应为2020年7月20日 如何在VBNet中达到此目的 提前感谢您的帮助 如果我对你说: 你在第10步,我希望你向前跳到第17步,然后向前跳到第20步。你的跳跃有多大 你会怎么做 17 - 10 = 7 20 - 17 = 3 现在如果我说 你在10到16之间的某个随机步长上。过程是什么 17

从今天开始(例如,2020年7月10日星期五),我必须得到下周五的日期(2020年7月17日),所以输出不应该是今天的日期

我还需要从今天开始的下一个第二个星期一(例如,2020年7月10日星期五),输出应为2020年7月20日

如何在VBNet中达到此目的


提前感谢您的帮助

如果我对你说:

你在第10步,我希望你向前跳到第17步,然后向前跳到第20步。你的跳跃有多大

你会怎么做

17 - 10 = 7
20 - 17 = 3
现在如果我说

你在10到16之间的某个随机步长上。过程是什么

17-随便

你是用数学来解决这个问题的


我可以告诉你/为你做几件事:

  • 当前日期
  • 当前值为0(星期日)到6(星期六)之间的枚举
  • 如果你需要几天的时间,日期是多少
如果你说:

Dim dayNumber = DirectCast(DateTime.Now.DayOfWeek, Integer)
今天,它将给你4。离下一个6点还有多远?二,

如果你说:

DateTime.Now.AddDays(2) 
今天是星期五。如果你想在两天内成为周五之后的周五,你可以
AddDays(7+2)
等。你可以猜到之后的周一怎么走

(将日期视为一个数字很有帮助。每次添加1,都会增加一天。如果添加0.5天,则会增加12小时等。您可以像添加数字一样增加日期时间,并且可以随时询问“这是哪一天?”)

然后你要做的就是把你找到的时间打印出来


请注意,
DateTime。现在
也包括时间;你只能真正地使用它,并在打印出来时将其处理掉。有一个
.Date
属性,它为您提供了一个日期时间,时间设置为午夜,但datetime总是有一个timel。如果您不需要它,您可以通过执行例如
ToString(“yyyy-MM-dd”)
来获取日期的字符串表示形式,而不显示时间


我已经联系上了催眠;你可以在那里找到深入的例子。要将示例的显示方式更改为VB,请使用右上角的#按钮试一试:

Public Function GetFridaySkippingToday(today As DateTime) As DateTime
    Dim result = today.AddDays(1.0)
    While result.DayOfWeek <> DayOfWeek.Friday
        result = result.AddDays(1.0)
    End While
    Return result
End Function

Public Function GetDayOfWeek(today As DateTime, dayOfWeek As DayOfWeek, skip As Integer) As DateTime
    Dim result = today
    While True
        If result.DayOfWeek = dayOfWeek Then
            If skip = 0 Then
                Exit While
            Else
                skip -= 1
            End If
        End If
        result = result.AddDays(1.0)
    End While
    Return result
End Function
公共函数GetFridaySkippingToday(今天作为DateTime)作为DateTime
Dim结果=今天。添加天数(1.0)
而result.DayOfWeek.DayOfWeek.周五
结果=结果.添加天数(1.0)
结束时
返回结果
端函数
公共函数GetDayOfWeek(今天作为DateTime,dayOfWeek作为dayOfWeek,跳过作为整数)作为DateTime
暗淡的结果=今天
虽然是真的
如果result.DayOfWeek=DayOfWeek,则
如果skip=0,则
退出时
其他的
跳过-=1
如果结束
如果结束
结果=结果.添加天数(1.0)
结束时
返回结果
端函数

在要求我们介入之前,您需要做一些努力。我们在这里不是为了让你不必费心自己去尝试。我们来这里是为了你尝试过但失败的东西,如果这是已经发生的事情,那么你需要向我们展示你做了什么,并告诉我们发生了什么。如果您费心阅读有关
DateTime
类型的内容,那么您知道该类型的所有成员,因此您已经掌握了自己解决问题所需的所有信息。我尝试了很多方法,但我也非常擅长发展,我仍然不能理解很多事情。。。我通常“研究”一个工作代码,然后使用它,我认为这是一种学习的方式。这是一种“学习”的方式,但学习远不止于此。示例有帮助,但很容易看到示例,认为您知道发生了什么,但无法针对任何情况编写自己的代码,即使是稍微不同的情况。如果你想采取懒惰的方式,那是你的特权,但也不是让人们从头开始写例子的地方。在这里,我们希望你尽最大努力,如果这不起作用,向我们展示你做了什么,解释你为什么这么做,以及你做的时候发生了什么。如果你这么做了,很多人会帮你解决问题。解决任何编程问题的方法就是从忘记这是一个编程问题开始。想一想,如果你必须用纸和笔手动完成,你会如何处理它。将它分解为越来越小的步骤,并将它们形式化为一个算法,您可以按照该算法每次都得到正确的结果。只有这样,你才应该考虑编写代码,而代码应该直接实现算法。你越是环保,坚持这一方针就越重要。随着你经验的增加,你可以安全地开始走捷径,而不是相反。我不知道该怎么说,但我尝试了很多方法。我也在谷歌上搜索了很多主题,但没有人有答案,或者至少没有一致的解决方案。你的“谈话”方式看起来真的不合适,所有这些道德评论是为了什么?我不知道这个网站是一个学校,在那里“prof”责备你,而不是提供一些可以帮助别人找到解决方案的建议。不管怎样,谢谢你不帮忙。如果你能看清楚我的个人资料,你会发现我只是在完全不知所措的时候才打开一个帖子。最后是一条毫无用处的评论。谢谢你的帮助,我现在就想办法解决我的问题!谢谢。