Liberdade 0 Denunciar post Postado Setembro 11, 2007 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 Compartilhar este post Link para o post Compartilhar em outros sites
Nerdoka 0 Denunciar post Postado Setembro 11, 2007 que tal você converter as datas antes de fazer as comparações?receba todas em um mesmo padrão e grave da mesma forma.. sempre forçando para que fiquem idênticas..sempre tem confusão com parada de datas.. 31/12/2008 pra 12/31/2008 pra 20083112, etc etc.. Compartilhar este post Link para o post Compartilhar em outros sites