Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde, estou tentando resolver essa questão mas sem êxito até o momento.. eu tenho uma função que verifica se o usuário é do tipo 3 (ele pesquina a coluna tipo) se for tipo 3 ele verifica se ele é maior que 21 anos verificando a data de nascimento.
Mas o que acontece é o seguinte.. se eu rodo o projeto do vb.net funciona normal.. se eu rodo o projeto Web asp.net pela minha máquina (windows XP - português) usando o Visual Web Developer, roda normalmente, se eu pego esse projeto que rodei pelo web developer e mando para um diretório virtual do servidor de produção Windows 2003 - Inglês rodando (IIS) ele critica essa linha do meu arquivo XLS. dizendo que esse cara tem mais que 21 anos o que não é verdade.
Linha 5: 11/20/1998 <--- Usuários Tipo3 não podem ter mais que 21 anos de idade
Dentro do arquivo XLS tem 20/11/1998.. E ele pula algumas linhas (ou seja linhas que para ele são normais)
Se ainda nessa mesma linha eu mudo esse valor para 08/11/1998 ele passa sem problemas.. Dentro do meu webconfig existe..
<globalization uiCulture="pt-BR" />
já rodei com isso e sem isso e nada.
acabei de deixar assim o web config e mesmo assim nada..
<globalization
fileEncoding="utf-8"
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="pt-BR"
uiCulture="pt-BR"
/>
Configurações regionais do servidor estavam tudo para português.. dd/mm/yyyy depois passei para tudo inglês mm/dd/yyyy e mesmo assim a mesma coisa aconteceu após a reinicialização do sitema.
Seguem o código onde são feitos os tratamentos com as datas.
Public Function Verifica_Tipo3(Optional ByVal Linha As Integer = COL_PrimeiraLinha, _ Optional ByVal ColunaTP As Integer = COL_TipoUsuario, _ Optional ByVal ColunaDN As Integer = COL_Nascimento, _ Optional ByVal ApagarErros As Boolean = False, _ Optional ByVal UltimaLinha As Integer = -1) As Boolean Dim ok As Boolean = True Dim tempData As DateTime Dim tempStr As String = "" Dim ii As Integer If ApagarErros Then Erros.Clear() If UltimaLinha < 0 Then UltimaLinha = _Planilha.Lines For ii = Linha To UltimaLinha Try '...pega Tipo 3 tempStr = _Planilha.Cell(ii, ColunaTP).ToString If tempStr = "3" Then '...pega data e transforma tempStr = _Planilha.Cell(ii, ColunaDN).ToString tempData = TurboDateParse(tempStr) If (DateTime.Now.Subtract(tempData).Days / 365) > 22 Then Throw New Exception("Tipo 3 incorreto") End If End If Catch ex As Exception ok = False tempStr = "Linha " & ii & ": " & _Planilha.Cell(ii, ColunaDN).ToString _ & " <--- Usuários Tipo3 não podem ter mais que 21 anos de idade" Erros.Add(tempStr) End Try Next Return (ok) End Functionessa é uma outra função que é utilizada para a conversão de datas.
Public Function TurboDateParse(ByVal Expression As Object, Optional ByVal DefaultValue As Object = Nothing) As Date Dim dd As DateTime = Date.MinValue Dim ss As String Dim ok As Boolean = True Try '... tertar direto dd = Date.Parse(Expression.ToString) GoTo ReturnValue Catch '... se há erro, continuar ok = False End Try Try '... tenta transformar string ss = Expression.ToString If (ss = "") Then GoTo ReturnValue If (ss.Length = 8) Then '... tenta inserir separadores ss = ss.Substring(0, 2) & "/" & ss.Substring(2, 2) & "/" & ss.Substring(4, 4) dd = Date.Parse(ss) End If Dim ii As Integer ii = Val(ss) dd = Date.Parse("30/12/1899") '... é o dia ZERO do sistema de datas dd = dd.AddDays(ii) '... somar dias ao dia Zero para calcular a data correta ok = True Catch ex As Exception dd = Date.MinValue End TryReturnValue: If (Not ok) AndAlso (DefaultValue IsNot Nothing) Then dd = Date.Parse(DefaultValue) End If Return dd End Function
O que pode ser?
Grata
Letícia
Carregando comentários...