Ir para conteúdo

[Util] TimeAgo.class - Converta tempo restante.


Pica-Pau

Posts Recomendados

Essa classezinha já tá rodando aqui nos meus projetos


e acho que vai ajudar a galerinha ai que meche com tempo.


 


TimeAgo.class




package me.devnatan.apis.time;

import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;

/**
*
* © DevNatan, 2017. Todos os direitos reservados
*
* @since 2017
* @version 1.0
* @author DevNatan
*
* Plugin de Bibliotecas Oficial.
* Desenvolvido por DevNatan.
*
* Conversor de tempo atrás.
*
*/

public class TimeAgo {

private final long time;
private static final Map<String, Long> names = new LinkedHashMap<String, Long>();

public TimeAgo(long time) {
this.time = time;
}

public long getTime() {
return time;
}

public static Map<String, Long> getNames() {
return names;
}

public static String toRelative(long duration, int maxLevel) {
StringBuilder res = new StringBuilder();
int level = 0;

for (Map.Entry<String, Long> time : names.entrySet()){
long timeDelta = duration / time.getValue();
if (timeDelta > 0) {
res.append(timeDelta)
.append(" ")
.append(time.getKey())
.append(timeDelta > 1 ? (time.getKey() != "mês" ? "s" : time.getKey().replace("mês", "meses")) : "")
.append(", ");
duration -= time.getValue() * timeDelta;
level++;
}

if (level == maxLevel) {
break;
}
}

if ("".equals(res.toString())) {
return "agora";
} else {
res.setLength(res.length() - 2);
res.append(" atrás");
return res.toString();
}
}

public String toRelative() {
return toRelative(time, names.size());
}

public static String toRelative(long duration) {
return toRelative(duration, names.size());
}

public static String toRelative(Date start, Date end) {
assert start.after(end);
return toRelative(end.getTime() - start.getTime());
}

public static String toRelative(Date start, Date end, int level) {
assert start.after(end);
return toRelative(end.getTime() - start.getTime(), level);
}
}
 

Link para o comentário
Compartilhar em outros sites

Seria legalzinho exemplos do que ele faz .-. (sinceramente n entendi nada como assim conversor de tempo atrás)

 

Exemplo:

 

long ontem = System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1);

System.out.println(" há " + TimeAgo.toRelative(new Date(ontem), new Date());

// Resultado:
// há 1 dia atrás.
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...