簡體   English   中英

GregorianCalendar去年的一周

[英]GregorianCalendar last year day of the week

我有一個Excel工作表,其列日期從2003年開始(格式:2015/02/10),並且列銷售。 我想提取(去年,當前一周,今天的名稱)銷售數字。 就像今天是2月12日星期四,那么相當於去年的“星期四”是在2月13日。我已經嘗試了下面的代碼但是我得到錯誤“無法轉換字符串”星期四“加倍”任何想法如何? 謝謝

 Dim MyCalendar As Calendar = New GregorianCalendar
    Dim culture = New System.Globalization.CultureInfo("EN-US")
    dim eventcal as new datatable
    Dim dayname As String = culture.DateTimeFormat.GetDayName(Now.DayOfWeek)

    Dim lastCurrentweek = MyCalendar.GetWeekOfYear(
      Now,
      CalendarWeekRule.FirstFourDayWeek,
      DayOfWeek.Sunday)
    Dim lastCurrentyear = MyCalendar.GetYear(Now) - 1
        dim dayrecord = (From Row In eventcal.AsEnumerable
           Where MyCalendar.GetWeekOfYear(Row.Field(Of DateTime)("date"),
           CalendarWeekRule.FirstFourDayWeek,
            DayOfWeek.Sunday) = Currentweek And MyCalendar.GetYear(Row.Field(Of DateTime)("date")) = lastCurrentyear And MyCalendar.GetDayOfWeek(Row.Field(Of DateTime)("date")) = dayname
           Select Row.Field(Of Double)("sales"))

對於它可能感興趣的人,這里是你如何得到相當於去年或前一年的今天。 感謝tommytwotrain提供此解決方案

Private Function Date2Weekday(ByVal d As Date, ByVal y As Integer) As Date
    'determine week
    Dim weekNumber As Integer = Math.Ceiling(d.Day / 7)
    'determine day number
    Dim daynumber1 As Integer = Weekday(d)
    'determine target first day of month
    Dim targetDay1 As Date = New DateTime(y, d.Month, 1)
    Dim targetDay1Number As Integer = Weekday(targetDay1)
    Dim dt As Integer = (weekNumber * 7) + (daynumber1 - targetDay1Number)+1
    If dt > weekNumber * 7 Then dt -= 7
 Date2Weekday = New DateTime(y, d.Month, dt)     
 End Function

Private Function salescalendar(ByVal dtduty As DataTable) As DataTable
   Dim eventcal As New DataTable
    Dim lastyear = MyCalendar.GetYear(Now) - 1
    Dim todays As Date = Now.Date
 Dim dayrecord = (From Row In eventcal.AsEnumerable
                 Where Row.Field(Of DateTime)("date") = Date2Weekday(todays, lastyear)
                Select Row.Field(Of Double)("sales")) 
  end function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM