Usuário com melhor resposta
Como buscar a data atual num site

Pergunta
-
Olá, montei essa rotina que funciona certinho mas pega a data do sistema, alguém poderia me mostrar uma rotina que pegue as variáveis "dia", "mes" e "ano" de um site que forneça a data de Brasília?
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dia As String = Date.Now.Day.ToString
Dim mes As String = Date.Now.Month.ToString
Dim ano As String = Date.Now.Year.ToString
Dim dataAtual, dataLim As DateTime
Dim diasUso As TimeSpan
dataAtual = Convert.ToDateTime(dia + "/" + mes + "/" + ano)
dataLim = New Date(2019, 9, 5)
diasUso = dataLim.Subtract(dataAtual)
If dataAtual < dataLim Then
MessageBox.Show("Este aplicativo ainda tem " + diasUso.Days.ToString() & " dias de uso.")
Else
diasUso = dataAtual.Subtract(dataLim)
MessageBox.Show("Este aplicativo já venceu seu prazo de uso há " + diasUso.Days.ToString() & " dias e será encerrado.")
End
End If
End Sub
End Class- Editado Durval Teixeira domingo, 29 de setembro de 2019 22:29
Respostas
-
Olá, bem não é necessário pegar a data de algum site pois a própria biblioteca do .NET tem uma função para converter datas, fiz pequenas alterações no seu código, por exemplo no lugar de pegar a data por dia mês e ano separados, peguei a data inteira já que no futuro você acabou convertendo, outras modificações foram comentadas no código.
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Pega TimeZone de Brasilia Dim timeZoneBrasilia As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("E. South America Standard Time") 'Converte a data do seu sistema para o horario de Brasilia Dim dataAtual As DateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeZoneBrasilia) Dim dataLim As DateTime Dim diasUso As TimeSpan dataLim = New Date(2019, 9, 5) diasUso = dataLim.Subtract(dataAtual) If dataAtual < dataLim Then MessageBox.Show("Este aplicativo ainda tem " + diasUso.Days.ToString() & " dias de uso.") Else diasUso = dataAtual.Subtract(dataLim) MessageBox.Show("Este aplicativo já venceu seu prazo de uso há " + diasUso.Days.ToString() & " dias e será encerrado.") End End If End Sub End Class
- Marcado como Resposta IgorFKModerator quarta-feira, 2 de outubro de 2019 14:25
Todas as Respostas
-
Olá, bem não é necessário pegar a data de algum site pois a própria biblioteca do .NET tem uma função para converter datas, fiz pequenas alterações no seu código, por exemplo no lugar de pegar a data por dia mês e ano separados, peguei a data inteira já que no futuro você acabou convertendo, outras modificações foram comentadas no código.
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Pega TimeZone de Brasilia Dim timeZoneBrasilia As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("E. South America Standard Time") 'Converte a data do seu sistema para o horario de Brasilia Dim dataAtual As DateTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, timeZoneBrasilia) Dim dataLim As DateTime Dim diasUso As TimeSpan dataLim = New Date(2019, 9, 5) diasUso = dataLim.Subtract(dataAtual) If dataAtual < dataLim Then MessageBox.Show("Este aplicativo ainda tem " + diasUso.Days.ToString() & " dias de uso.") Else diasUso = dataAtual.Subtract(dataLim) MessageBox.Show("Este aplicativo já venceu seu prazo de uso há " + diasUso.Days.ToString() & " dias e será encerrado.") End End If End Sub End Class
- Marcado como Resposta IgorFKModerator quarta-feira, 2 de outubro de 2019 14:25
-
-
Magno, a intenção de pegar uma data de fora do PC (não do sistema) seria para evitar que algum usuário mal intencionado altere a data do PC e assim burlar um aplicativo qualquer já vencido.
Compilei e rodei a sua rotina deixando a data (10/10/2019) como dataLimite na rotina. Como hoje é 02/10/2019, o MsgBox dá a seguinte mensagem: "Este aplicativo ainda tem 7 dias de uso.", até ai tudo ok.
Alterei a data do meu PC para 12/10/2019, ao rodar novamente a sua rotina, o MsgBox dá a outra mensagem, dizendo que o aplicativo já venceu há 1 dia, é isso que eu NÃO queria que acontecesse, a rotina deveria atualizar a data do meu PC e continuar dando aquele primeiro MsgBox que diz: "Este aplicativo ainda tem 7 dias de uso."
O que será que tem que fazer para resolver isso? Se souber, me dá uma força!
Grato/Durval
-