2018. 1. 11. 14:17
등록 시간 날짜 & 읽은 숫자(카운트) 줄여서 표시 (네이버TV,유튜브처럼) 용-ILE/LANG-JAVA(JSP)2018. 1. 11. 14:17
http://suite.tistory.com 2018.01 fs
* 시간 등록일 표시를 줄여서 표시
ex) 1년전 , 3개월전 1주전 , 2일전, 5분전 , 1분전, 1초전
joda 라이브러리 이용 import org.joda.time.Interval;import org.joda.time.Period;
public String getSummaryPeriod(Date date) {
String resultPeriod = "";
Interval interval = new Interval(date.getTime(), new Date().getTime());
Period period = interval.toPeriod();
if (period.getYears() > 0) {
resultPeriod = period.getYears() + "년 전";
} else if (period.getMonths() > 0) {
resultPeriod = period.getMonths() + "개월 전";
} else if (period.getWeeks() > 0) {
resultPeriod = period.getWeeks() + "주 전";
} else if (period.getHours() > 0) {
resultPeriod = period.getDays() + "일 전";
} else if (period.getWeeks() > 0) {;
resultPeriod = period.getHours() + "시간 전";
} else if (period.getMinutes() > 0) {
resultPeriod = period.getMinutes() + "분 전";
} else if (period.getSeconds() > 0) {
resultPeriod = period.getSeconds() + "초 전";
}
return resultPeriod;
}
* 읽은 수 카운트 줄여서 표시
ex) 1천 , 1.2만 , 1.5억 대략적인 수치로 줄임
참고소스 https://stackoverflow.com/questions/4753251/how-to-go-about-formatting-1200-to-1-2k-in-java
public String getSummaryCount(int count) throws IOException {
if (count < 1000) {
return "" + count;
}
int div = 4;
if (count < 10000) {
div = 3;
}
double value = count;
String suffix = "천만억";
String formattedNumber = "";
NumberFormat formatter = new DecimalFormat("#,###.#");
int power = (int) StrictMath.log10(value);
value = value / (Math.pow(10, (power / div) * div));
formattedNumber = formatter.format(value);
formattedNumber = formattedNumber + suffix.charAt(power / 4);
return formattedNumber;
}
'용-ILE > LANG-JAVA(JSP)' 카테고리의 다른 글
jar 패키지 파일 내 txt 파일 읽기 , 경로 getResource getResourceAsStream (1) | 2015.07.14 |
---|---|
[ 파일 IO ] 스트림 파일 쓰기 / 읽기 Byte , Buffered (0) | 2012.10.18 |
[ java ] javax.mail 참조 용 (0) | 2012.05.30 |
[java] Pascal Triangle by array (0) | 2011.06.18 |
[정렬] 자바(java) 다중 정렬 (multi sort) (0) | 2011.02.09 |