2013-02-15 39 views
-3

好吧我正在做一個程序,要求用戶輸入一年(例如2002年),並給出了第一個星期二年。我必須做一個視覺的基本程序,要求一年,並給出一週的一天

我不知道該如何開始。誰能幫忙?

+0

使用'DateTime'類型。 – SLaks 2013-02-15 19:56:13

+0

這只是一個視覺的基本2010運動問題。我無法弄清楚如何處理日期或如何使用日期。我對Visual Basic有基本的瞭解,但是使用日期和查找星期幾給我帶來了很多麻煩。它所要做的就是在vb studio中運行時正常運行。 – user2076795 2013-02-15 20:03:58

回答

1
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 
2

我不知道如何甚至開始這一點。

您正在思考如何解決這個問題,甚至沒有考慮到代碼。你能想到的一些不同的方法:

  • 循環通過一年的天(從1月1日),直到你找到一個週四
  • 獲得那年的1月1日的日期。檢查一週中的哪一天。添加星期和星期四的這一天之間的天數。

現在編碼部分:DateTime結構用於表示.NET中的日期。 A constructor可用於創建特定日期,月份和年份的日期。如果您查看DateTime的文檔,您會發現DayOfWeek方法對您有所幫助。

我希望這會讓你開始!

編輯:

於用戶輸入(字符串)轉換爲整數,可使用Parse功能。

+0

我遇到麻煩的事情就是搞清楚如何讓4位數的年份進入程序將理解爲一年的東西,然後在當年的第一天看看它是不是一個星期二在這一天添加一些東西(如果它是一個星期一加1,所以現在是星期二,顯示該日期),如果它顯示該日期。我想我知道我將如何處理剩下的問題,但將第一個字符串的值作爲一年讀取是我無法想象的。 – user2076795 2013-02-15 20:40:56

+0

是的,我沒有談論那部分。你想要做的是將用戶輸入(字符串)解析爲一個整數值。然後,您可以使用此整數值爲該年的第一天建立日期。我編輯了我的答案。 – 2013-02-15 21:07:23

0

我試着用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 
相關問題