DATEDIFF EM HORAS UTEIS
                    Bom dia!!
Alguem tem alguma função pronta que faça o a diferenca de duas datas ex: 22/04/2011 7:30 a 30/05/2011 22:00
No caso teria que me retornar a diferenca das datas em horas desconsiderando sabado e domingos..
Abrs
            Alguem tem alguma função pronta que faça o a diferenca de duas datas ex: 22/04/2011 7:30 a 30/05/2011 22:00
No caso teria que me retornar a diferenca das datas em horas desconsiderando sabado e domingos..
Abrs
                    CalculaHora(txtDataInicial & [Ô] [Ô] & txtHoraInicial, txtDataFinal & [Ô] [Ô] & txtHoraFinal)
Function CalculaHora(HrIni, HrFim) As Double
Dim dblDifHoras As Double
If IsNull(HrIni + HrFim) Then Exit Function
dblDifHoras = DateDiff([Ô]n[Ô], HrIni, HrFim)
CalculaHora = dblDifHoras / 60
End Function
Tenta isso...pra mim funciona.. peguei no Macoratti
            Function CalculaHora(HrIni, HrFim) As Double
Dim dblDifHoras As Double
If IsNull(HrIni + HrFim) Then Exit Function
dblDifHoras = DateDiff([Ô]n[Ô], HrIni, HrFim)
CalculaHora = dblDifHoras / 60
End Function
Tenta isso...pra mim funciona.. peguei no Macoratti
                    vc quer só em horas? ou dias e horas?
                
            
                    Nao tinha visto o [Ô]desconsiderando sabados e domingos[Ô]. 
Desconsidere..
Uso essa rotina para uma usina q nao tem dias exatos de folga. Virou - trabalhou.
            Desconsidere..
Uso essa rotina para uma usina q nao tem dias exatos de folga. Virou - trabalhou.
                    Eu fiz essa de presente :D
rsrsr .. eu ja tive que fazer um simulador de carregamento, e criei esta função ... pode usá-la
VB.NET
Desculpe não tinha visto que era vb6 então, fiz os ajustes para VB6
            rsrsr .. eu ja tive que fazer um simulador de carregamento, e criei esta função ... pode usá-la
VB.NET
  
    Dim ini_tim As Date = [Ô]08:00[Ô]
    Dim fim_tim As Date = [Ô]18:00[Ô]
    [ô][ô][ô] <summary>
    [ô][ô][ô] Calcula a diferença entre 2 datas considerando horario comercial e finais de semana
    [ô][ô][ô] </summary>
    [ô][ô][ô] <param name=[Ô]date1[Ô]>data de inicio</param>
    [ô][ô][ô] <param name=[Ô]date2[Ô]>data de final</param>
    [ô][ô][ô] <param name=[Ô]considerwk[Ô]>define se os finais de semana devem ser considerador</param>
    [ô][ô][ô] <returns></returns>
    [ô][ô][ô] <remarks></remarks>
    Public Function Calculate(ByVal date1 As Date, ByVal date2 As Date, Optional ByVal considerwk As Boolean = True) As Decimal
        [ô]//RESULTADO
        Dim _res As Integer
        [ô]//ENQUANTO A DATA NAO CHEGAR
        Do While date1 <= date2
            [ô]//VERIFICA SE ESTA DENTRO DO INTERVALO DE HORAS
            If Hour(date1) >= Hour(ini_tim) And Hour(date1) <= Hour(fim_tim) Then
                [ô]//VERIFICA SE A FLAG PARA IGNORAR OS FDS ESTA ATIVA
                If considerwk = True Then
                    [ô]//SE A DATA INCREMENTADA NAO FOR SABADO E NEM DOMINGO
                    If Weekday(date1) <> vbSaturday And Weekday(date1) <> vbSunday Then
                        [ô]//INCREMENTA O RESULTADO
                        _res += 1
                    End If
                Else
                    [ô]//INCREMENTA O RESULTADO
                    _res += 1
                End If
            End If
            [ô]//ADICIONA UM MINUTO A DATA
            date1 = DateAdd([Ô]n[Ô], 1, date1)
        Loop
        [ô]//RETORNA A DIFERENÇA EM HORAS
        Return CDec(_res / 60)
    End Function
 Desculpe não tinha visto que era vb6 então, fiz os ajustes para VB6
  
   Private Const ini_tim As Date = [Ô]08:00[Ô]
   Private Const fim_tim As Date = [Ô]18:00[Ô]
    [ô][ô][ô] <summary>
    [ô][ô][ô] Calcula a diferença entre 2 datas considerando horario comercial e finais de semana
    [ô][ô][ô] </summary>
    [ô][ô][ô] <param name=[Ô]date1[Ô]>data de inicio</param>
    [ô][ô][ô] <param name=[Ô]date2[Ô]>data de final</param>
    [ô][ô][ô] <param name=[Ô]considerwk[Ô]>define se os finais de semana devem ser considerador</param>
    [ô][ô][ô] <returns></returns>
    [ô][ô][ô] <remarks></remarks>
    Public Function Calculate(ByVal date1 As Date, ByVal date2 As Date, Optional ByVal considerwk As Boolean = True) As Double
        [ô]//RESULTADO
        Dim res As Double
        [ô]//ENQUANTO A DATA NAO CHEGAR
        Do While date1 <= date2
            [ô]//VERIFICA SE ESTA DENTRO DO INTERVALO DE HORAS
            If Hour(date1) >= Hour(ini_tim) And Hour(date1) <= Hour(fim_tim) Then
                [ô]//VERIFICA SE A FLAG PARA IGNORAR OS FDS ESTA ATIVA
                If considerwk = True Then
                    [ô]//SE A DATA INCREMENTADA NAO FOR SABADO E NEM DOMINGO
                    If Weekday(date1) <> vbSaturday And Weekday(date1) <> vbSunday Then
                        [ô]//INCREMENTA O RESULTADO
                        res = res + 1
                    End If
                Else
                    [ô]//INCREMENTA O RESULTADO
                    res = res + 1
                End If
            End If
            [ô]//ADICIONA UM MINUTO A DATA
            date1 = DateAdd([Ô]n[Ô], 1, date1)
        Loop
        [ô]//RETORNA A DIFERENÇA EM HORAS
        Calculate = CDbl(res / 60)
    End Function
 
                
                        Tópico encerrado , respostas não são mais permitidas