Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    262

    Da un Numero della Settimana al relativo range di date

    Ciao,
    vorrei sapere come si fa a trovare il range di date dal... al ... avendo solo il numero della settimana es.: settimana numero 36 che settimana corrisponde?


    Grazie Mille

    Minnie

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,886
    Ho trovato questa e funziona (nell'esempio con un calendario), passale il numero della settimana e l'anno della data scelta:

    codice:
        Protected Sub calendario_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles calendario.SelectionChanged
            Dim settimana As Integer = DatePart(DateInterval.WeekOfYear, calendario.SelectedDate)
            Response.Write(RangeSettimana(settimana, calendario.SelectedDate.Year))
        End Sub
    
        Public Function RangeSettimana(ByVal WeekNumber As Integer, ByVal year1 As Integer) As String
            Dim compensation As Integer = 0
            Dim oneDate As String
            Dim firstDayDate As Date
    
            oneDate = "1/1/" & year1.ToString
            firstDayDate = DateAndTime.DateValue(oneDate)
    
            Select Case firstDayDate.DayOfWeek
                Case DayOfWeek.Sunday
                    compensation = 0
                Case DayOfWeek.Monday
                    compensation = 6
                Case DayOfWeek.Tuesday
                    compensation = 5
                Case DayOfWeek.Wednesday
                    compensation = 4
                Case DayOfWeek.Thursday
                    compensation = 3
                Case DayOfWeek.Friday
                    compensation = 2
                Case DayOfWeek.Saturday
                    compensation = 1
            End Select
    
            Dim x As Date = DateAdd(DateInterval.Day, 0 - compensation, CType(oneDate, Date))
    
            Dim start_date As Date = DateAdd(DateInterval.WeekOfYear, WeekNumber - 1, x)
            Dim end_date As Date = start_date.AddDays(5)
    
            Return "Settimana " & WeekNumber & ", dal " & start_date.ToShortDateString & " al " & end_date.ToShortDateString
        End Function

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    262
    grazie è stata utile

  4. #4

    Versione TSQL

    Se a qualcuno può essere utile ecco la versione per TSQL
    -- =============================================
    -- Author: M.Mascherin
    -- Create date: 2010-11-26
    -- Description: Restituisce il primo e l'ultimo giorno
    -- di una settimana passata in formato numero
    -- =============================================
    CREATE FUNCTION FirstDayOfWeekNumber
    (
    -- Add the parameters for the function here
    @WeekNumber int,
    @Year varchar(4)
    )
    RETURNS
    @T table(start_date datetime,end_date datetime)
    AS
    BEGIN

    declare @compensation As Int
    declare @oneDate As Varchar(8)
    declare @firstDayDate As Datetime
    declare @IncSet as int
    declare @x As Datetime
    declare @start_date As Datetime
    declare @end_date As Datetime

    set @compensation=0
    set @oneDate = @Year+'0101'
    set @firstDayDate = cast(@Year+'0101' as datetime)



    set @IncSet=1
    if dbo.isoweek(@firstDayDate)=52
    set @IncSet=0



    set @compensation= datepart(dw,@firstDayDate)
    set @x = DateAdd(d, 2 - @compensation, @oneDate)
    set @start_date= DateAdd(wk, @WeekNumber-@IncSet , @x)
    set @end_date= DateAdd(d, 7, @start_date)

    insert into @T values (@Start_date,@End_Date)

    RETURN

    END

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.