Ir ao conteúdo
  • Cadastre-se

Como comparar 3 valores em c#


Posts recomendados

Eae galera tudo bem :D

to com um probleminha aqui,

preciso comparar 3 valores em uma if

estou tentando fazer algo assim:

if (calculaHora > 86400 < 172800)

exemplo:

calculaHora deve ser maior que 86400 e 86400 não pode ser maior que 172800 entendem?

 

só que dessa maneira da um erro que não consigo resolver...

uma solução para esse caso?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

26 minutos atrás, Mauro Britivaldo disse:

Bom Dia,


///~calculaHora deve ser maior que 86400 e 86400 não pode ser maior que 172800 entendem
if( calculaHora > 86400 && 172800 > calculaHora ) {
	... //~Código, tarefas etc.	 
 }

 

Não funcionou, não sei se estou fazendo algo errado mas o código é o seguinte

                        if (calculaHora < 86400)
                        {
                        hora = dtDateTime.ToString("HH:mm");
                        }
                        else if (calculaHora > 86400 && 172800 > calculaHora)
                        {
                        hora = "Ontem, " + dtDateTime.ToString("HH:mm");
                        }
                        else
                        { hora = dtDateTime.ToString("dd/MM/yy, H:mm:ss"); }

no primeiro if, se o valor for menor que 86400 exibe "hora:minuto"

no segundo if se o valor for maior que 86400 e menor que 172800 exibe: "Ontem, hora:minuto"

caso não for nenhum das alternativas então exibe: dia/mes/ano hora:minuto:segundo

 

esses valores são em segundos 86400 = 24 horas, 172800 = 48 horas

 

o que ta acontecendo e que ele não exibe a data de ontem, exibe como se tivesse sido enviada hoje.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddSeconds(double.Parse(song.Value["timestamp"].ToString())).ToLocalTime();
Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
int calculaHora;
calculaHora = (int.Parse(unixTimestamp.ToString()) - int.Parse(song.Value["timestamp"].ToString()));
string hora;

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O problema é com relação a avaliação do 2º IF, observe as condições que declarei abaixo, e faça os teste apenas nelas

Assim mesmo fora de contexto, porque dentro do contexto fica um pouco mais complicado.

 

	unsigned int calculaHora = 86401;
	
	//~ Exemplo #1
	if (calculaHora > 86400 && 172800 > calculaHora)
		printf( "#1 Esta tudo Ok!\n" );
	
	//~ Exemplo #2	
	calculaHora = 172799;
	if (calculaHora > 86400 && 172800 > calculaHora)
		printf( "#2 Esta tudo Ok!\n" );
		
	//~ Exemplo #3	
	calculaHora = 172800;
	if (calculaHora > 86400 && 172800 > calculaHora)
		printf( "#3 Esta tudo Ok!\n" ); else
		printf( "#3 Fora do intervaldo que vai de 86401 a 172799\nSorry!\n\n" );

 

adicionado 5 minutos depois

existe situações lógicas em que precisamos incluir os estremos da reta, então para estes casos usamos >= ou <=

Acredito que este seja o caso?

adicionado 5 minutos depois

>= maior e Igual

<= menor e Igual

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O seu método estava certo, eu que não estava pensando direito, no caso 'ontem' seria assim que a hora passasse das 00:00

 

mas no meu código estava calculando a hora do envio da msg, exemplo: a msg foi enviada as 23:50, no meu código pegaria a data/hora atual e subtrai pelo data/hora do envio então não daria 24h em segundos. então por isso exibia como se tivesse sido enviada hoje.

 

preciso arrumar uma solução para isso, mas de qualquer maneira muito obrigado pela ajuda Mauro :)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...