我必须制作一个视觉基础程序,要求一年,并给出一周中的一天



好吧,我正在制作一个程序,请求用户输入年份(例如2002年),并返回当年的第一个星期二。

我甚至不知道该怎么开始。有人能帮忙吗?

我甚至不知道该怎么开始。

你在思考如何解决这个问题,一开始甚至没有考虑代码。你可以想出一些不同的方法:

  • 一年中的每一天(从1月1日开始)循环,直到你找到一个星期四
  • 获取当年1月1日的日期。检查星期几。加上星期几和星期四之间的天数

现在关于编码部分:DateTime结构用于表示.NET中的日期。构造函数可用于创建特定日期、月份和年份的日期。如果你看一下DateTime的文档,你会发现DayOfWeek方法对你很有帮助。

我希望这能让你开始!

编辑:

要将用户输入(字符串)转换为整数,请使用Parse函数。

Public Function GetFirstTuesday(year As Integer) As Date
    Dim d As Date = New Date(year, 1, 1, 0, 0)
    For i As Integer = 0 To 6
        If d.AddDays(i).DayOfWeek = DayOfWeek.Tuesday) Then
            Return d.AddDays(i)
        End If
    Next
End Function

我试着用Linq解决它(我是Linq初学者)。错误处理由您决定。

Sub Main()
    Console.WriteLine(GetFirstTuesdayOfYear(2013)) 'returns 01.01.2013
    Console.WriteLine(GetFirstTuesdayOfYear(2012)) 'returns 03.01.2012
    Console.WriteLine(GetFirstTuesdayOfYear(2011)) 'returns 04.01.2011
    Console.WriteLine(GetFirstTuesdayOfYear(2010)) 'returns 05.01.2010
    Console.WriteLine(GetFirstTuesdayOfYear(2009)) 'returns 06.01.2009
    Console.Read()
End Sub
Private Function GetFirstTuesdayOfYear(year As Integer) As DateTime
    Return Enumerable.Range(1, DateTime.DaysInMonth(Year, 1)).[Select](Function(day) New DateTime(Year, 1, day)).ToList().FirstOrDefault(Function(x) x.DayOfWeek = DayOfWeek.Tuesday)
End Function

最新更新