반응형
예전에 어떤 앱을 만들기 할 때 사용했던 음력 변환 하는 소스를 어딘가에서 찾았던 거 같은데... 다시 한번 기억해 보기 위해서 적어 보기로 했다.
https://billcorea.tistory.com/4
이건 어딘가에서 퍼왔던 소스인데, 기억이 가물 가물 하다.
import java.text.SimpleDateFormat;
import java.util.Date;
public class LunarTranser {
private static final int kk[] = {
1, 2, 1, 2, 1, 2, 2, 3, 2, 2,
1, 2, 1, 1, 2, 1, 2, 1, 2, 1,
2, 2, 1, 2, 2, 0, 1, 1, 2, 1,
1, 2, 1, 2, 2, 2, 1, 2, 0, 2,
1, 1, 2, 1, 3, 2, 1, 2, 2, 1,
2, 2, 2, 1, 1, 2, 1, 1, 2, 1,
2, 1, 2, 2, 0, 2, 1, 2, 1, 2,
1, 1, 2, 1, 2, 1, 2, 0, 2, 2,
1, 2, 3, 2, 1, 1, 2, 1, 2, 1,
2, 2, 1, 2, 2, 1, 2, 1, 1, 2,
1, 2, 1, 0, 2, 1, 2, 2, 1, 2,
1, 2, 1, 2, 1, 2, 0, 1, 2, 3,
2, 1, 2, 2, 1, 2, 1, 2, 1, 2,
1, 2, 1, 2, 1, 2, 1, 2, 2, 1,
2, 2, 0, 1, 1, 2, 1, 1, 2, 3,
2, 2, 1, 2, 2, 2, 1, 1, 2, 1,
1, 2, 1, 2, 1, 2, 2, 2, 0, 1,
2, 1, 2, 1, 1, 2, 1, 2, 1, 2,
2, 0, 2, 1, 2, 1, 2, 3, 1, 2,
1, 2, 1, 2, 1, 2, 2, 2, 1, 2,
1, 1, 2, 1, 2, 1, 2, 0, 1, 2,
2, 1, 2, 1, 2, 1, 2, 1, 2, 1,
0, 2, 1, 2, 3, 2, 2, 1, 2, 1,
2, 1, 2, 1, 2, 1, 2, 1, 2, 1,
2, 2, 1, 2, 1, 2, 0, 1, 2, 1,
1, 2, 1, 2, 2, 3, 2, 2, 1, 2,
1, 2, 1, 1, 2, 1, 2, 1, 2, 2,
2, 1, 0, 2, 1, 2, 1, 1, 2, 1,
2, 1, 2, 2, 2, 0, 1, 2, 1, 2,
1, 3, 2, 1, 1, 2, 2, 1, 2, 2,
2, 1, 2, 1, 1, 2, 1, 1, 2, 2,
1, 0, 2, 2, 1, 2, 2, 1, 1, 2,
1, 2, 1, 2, 0, 1, 2, 2, 1, 4,
1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
1, 2, 1, 2, 2, 1, 2, 1, 2, 1,
0, 2, 1, 1, 2, 2, 1, 2, 1, 2,
2, 1, 2, 0, 1, 2, 3, 1, 2, 1,
2, 1, 2, 2, 2, 1, 2, 1, 2, 1,
1, 2, 1, 2, 1, 2, 2, 2, 1, 0,
2, 1, 2, 1, 1, 2, 3, 1, 2, 2,
1, 2, 2, 2, 1, 2, 1, 1, 2, 1,
1, 2, 2, 1, 2, 0, 2, 2, 1, 2,
1, 1, 2, 1, 1, 2, 1, 2, 0, 2,
2, 1, 2, 2, 3, 1, 2, 1, 2, 1,
1, 2, 2, 1, 2, 2, 1, 2, 1, 2,
1, 2, 1, 2, 0, 1, 2, 1, 2, 1,
2, 2, 1, 2, 1, 2, 1, 0, 2, 1,
3, 2, 1, 2, 2, 1, 2, 2, 1, 2,
1, 2, 1, 1, 2, 1, 2, 1, 2, 2,
2, 1, 2, 0, 1, 2, 1, 1, 2, 1,
2, 3, 2, 2, 1, 2, 2, 1, 2, 1,
1, 2, 1, 1, 2, 2, 1, 2, 2, 0,
2, 1, 2, 1, 1, 2, 1, 1, 2, 1,
2, 2, 0, 2, 1, 2, 2, 1, 3, 2,
1, 1, 2, 1, 2, 2, 1, 2, 2, 1,
2, 1, 2, 1, 2, 1, 1, 2, 0, 2,
1, 2, 1, 2, 2, 1, 2, 1, 2, 1,
1, 0, 2, 1, 2, 2, 3, 2, 1, 2,
2, 1, 2, 1, 2, 1, 1, 2, 1, 2,
1, 2, 2, 1, 2, 2, 1, 0, 2, 1,
1, 2, 1, 2, 1, 2, 2, 1, 2, 2,
0, 1, 2, 3, 1, 2, 1, 1, 2, 2,
1, 2, 2, 2, 1, 2, 1, 1, 2, 1,
1, 2, 1, 2, 2, 2, 0, 1, 2, 2,
1, 1, 2, 3, 1, 2, 1, 2, 2, 1,
2, 2, 2, 1, 1, 2, 1, 1, 2, 1,
2, 1, 0, 2, 2, 2, 1, 2, 1, 2,
1, 1, 2, 1, 2, 0, 1, 2, 2, 1,
2, 4, 1, 2, 1, 2, 1, 1, 2, 1,
2, 1, 2, 2, 1, 2, 2, 1, 2, 1,
2, 0, 1, 1, 2, 1, 2, 1, 2, 2,
1, 2, 2, 1, 0, 2, 1, 1, 4, 1,
2, 1, 2, 1, 2, 2, 2, 1, 2, 1,
1, 2, 1, 1, 2, 1, 2, 2, 2, 1,
0, 2, 2, 1, 1, 2, 1, 1, 4, 1,
2, 2, 1, 2, 2, 2, 1, 1, 2, 1,
1, 2, 1, 2, 1, 2, 0, 2, 2, 1,
2, 1, 2, 1, 1, 2, 1, 2, 1, 0,
2, 2, 1, 2, 2, 1, 4, 1, 1, 2,
1, 2, 1, 2, 1, 2, 2, 1, 2, 2,
1, 2, 1, 1, 2, 0, 1, 2, 1, 2,
1, 2, 2, 1, 2, 2, 1, 2, 0, 1,
1, 2, 1, 4, 1, 2, 1, 2, 2, 1,
2, 2, 1, 1, 2, 1, 1, 2, 1, 2,
2, 2, 1, 2, 0, 2, 1, 1, 2, 1,
1, 2, 1, 2, 2, 1, 2, 0, 2, 2,
3, 1, 2, 1, 1, 2, 1, 2, 1, 2,
2, 2, 1, 2, 1, 2, 1, 1, 2, 1,
2, 1, 2, 0, 2, 2, 1, 2, 1, 2,
1, 3, 2, 1, 2, 1, 2, 2, 1, 2,
2, 1, 2, 1, 1, 2, 1, 2, 1, 0,
2, 1, 2, 2, 1, 2, 1, 2, 1, 2,
1, 2, 0, 1, 2, 1, 2, 1, 4, 2,
1, 2, 1, 2, 1, 2, 1, 2, 1, 1,
2, 2, 1, 2, 2, 1, 2, 2, 0, 1,
1, 2, 1, 1, 2, 1, 2, 2, 1, 2,
2, 0, 2, 1, 1, 4, 1, 1, 2, 1,
2, 1, 2, 2, 2, 1, 2, 1, 2, 1,
1, 2, 1, 2, 1, 2, 2, 0, 2, 1,
2, 1, 2, 1, 1, 2, 3, 2, 1, 2,
2, 1, 2, 2, 1, 2, 1, 1, 2, 1,
2, 1, 2, 0, 1, 2, 2, 1, 2, 1,
2, 1, 2, 1, 2, 1, 0, 2, 1, 2,
1, 2, 2, 3, 2, 1, 2, 1, 2, 1,
2, 1, 2, 1, 2, 1, 2, 2, 1, 2,
1, 2, 0, 1, 2, 1, 1, 2, 1, 2,
2, 1, 2, 2, 1, 0, 2, 1, 2, 1,
3, 2, 1, 2, 1, 2, 2, 2, 1, 2,
1, 2, 1, 1, 2, 1, 2, 1, 2, 2,
2, 0, 1, 2, 1, 2, 1, 1, 2, 1,
1, 2, 2, 1, 0, 2, 2, 2, 3, 2,
1, 1, 2, 1, 1, 2, 2, 1, 2, 2,
1, 2, 2, 1, 1, 2, 1, 2, 1, 2,
0, 1, 2, 2, 1, 2, 1, 2, 3, 2,
1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
2, 1, 2, 1, 2, 1, 0, 2, 1, 1,
2, 2, 1, 2, 1, 2, 2, 1, 2, 0,
1, 2, 1, 1, 2, 3, 2, 1, 2, 2,
2, 1, 2, 1, 2, 1, 1, 2, 1, 2,
1, 2, 2, 2, 1, 0, 2, 1, 2, 1,
1, 2, 1, 1, 2, 2, 2, 1, 0, 2,
2, 1, 2, 3, 1, 2, 1, 1, 2, 2,
1, 2, 2, 2, 1, 2, 1, 1, 2, 1,
1, 2, 1, 2, 0, 2, 2, 1, 2, 1,
2, 1, 2, 3, 2, 1, 1, 2, 2, 1,
2, 2, 1, 2, 1, 2, 1, 2, 1, 1,
0, 2, 2, 1, 2, 1, 2, 2, 1, 2,
1, 2, 1, 0, 2, 1, 1, 2, 1, 2,
4, 1, 2, 2, 1, 2, 1, 2, 1, 1,
2, 1, 2, 1, 2, 2, 1, 2, 2, 0,
1, 2, 1, 1, 2, 1, 1, 2, 2, 1,
2, 2, 0, 2, 1, 2, 1, 3, 2, 1,
1, 2, 2, 1, 2, 2, 2, 1, 2, 1,
1, 2, 1, 1, 2, 1, 2, 2, 0, 2,
1, 2, 2, 1, 1, 2, 1, 1, 2, 3,
2, 2, 1, 2, 2, 1, 2, 1, 2, 1,
1, 2, 1, 2, 0, 1, 2, 2, 1, 2,
2, 1, 2, 1, 2, 1, 1, 0, 2, 1,
2, 2, 1, 2, 3, 2, 2, 1, 2, 1,
2, 1, 1, 2, 1, 2, 1, 2, 2, 1,
2, 2, 1, 0, 2, 1, 1, 2, 1, 2,
1, 2, 2, 1, 2, 2, 0, 1, 2, 1,
1, 2, 3, 1, 2, 1, 2, 2, 2, 2,
1, 2, 1, 1, 2, 1, 1, 2, 1, 2,
2, 2, 0, 1, 2, 2, 1, 1, 2, 1,
1, 2, 1, 2, 2, 0, 1, 2, 2, 3,
2, 1, 2, 1, 1, 2, 1, 2, 1, 2,
2, 2, 1, 2, 1, 2, 1, 1, 2, 1,
2, 0, 1, 2, 2, 1, 2, 2, 1, 2,
3, 2, 1, 1, 2, 1, 2, 1, 2, 2,
1, 2, 1, 2, 2, 1, 2, 0, 1, 1,
2, 1, 2, 1, 2, 2, 1, 2, 2, 1,
0, 2, 1, 1, 2, 1, 3, 2, 2, 1,
2, 2, 2, 1, 2, 1, 1, 2, 1, 1,
2, 1, 2, 2, 2, 1, 0, 2, 2, 1,
1, 2, 1, 1, 2, 1, 2, 2, 1, 0,
2, 2, 2, 1, 3, 2, 1, 1, 2, 1,
2, 1, 2, 2, 2, 1, 2, 1, 2, 1,
1, 2, 1, 2, 1, 0, 2, 2, 1, 2,
2, 1, 2, 1, 1, 2, 1, 2, 0, 1,
2, 3, 2, 2, 1, 2, 1, 2, 2, 1,
1, 2, 1, 2, 1, 2, 1, 2, 2, 1,
2, 2, 1, 2, 0, 1, 1, 2, 1, 2,
1, 2, 3, 2, 2, 1, 2, 2, 1, 1,
2, 1, 1, 2, 1, 2, 2, 2, 1, 2,
0, 2, 1, 1, 2, 1, 1, 2, 1, 2,
2, 1, 2, 0, 2, 2, 1, 1, 2, 3,
1, 2, 1, 2, 1, 2, 2, 2, 1, 2,
1, 2, 1, 1, 2, 1, 2, 1, 2, 0,
2, 1, 2, 2, 1, 2, 1, 1, 2, 1,
2, 1, 0, 2, 1, 2, 4, 2, 1, 2,
1, 1, 2, 1, 2, 1, 2, 1, 2, 2,
1, 2, 1, 2, 1, 2, 1, 2, 0, 1,
2, 1, 2, 1, 2, 1, 2, 2, 3, 2,
1, 2, 1, 2, 1, 1, 2, 1, 2, 2,
2, 1, 2, 2, 0, 1, 1, 2, 1, 1,
2, 1, 2, 2, 1, 2, 2, 0, 2, 1,
1, 2, 1, 3, 2, 1, 2, 1, 2, 2,
2, 1, 2, 1, 2, 1, 1, 2, 1, 2,
1, 2, 2, 0, 2, 1, 2, 1, 2, 1,
1, 2, 1, 2, 1, 2, 0, 2, 1, 2,
2, 3, 2, 1, 1, 2, 1, 2, 1, 2,
1, 2, 2, 1, 2, 1, 2, 1, 2, 1,
2, 1, 0, 2, 1, 2, 1, 2, 2, 1,
2, 1, 2, 1, 2, 0, 1, 2, 3, 2,
1, 2, 1, 2, 2, 1, 2, 1, 2, 1,
2, 1, 1, 2, 1, 2, 2, 1, 2, 2,
1, 0, 2, 1, 2, 1, 1, 2, 3, 2,
1, 2, 2, 2, 1, 2, 1, 2, 1, 1,
2, 1, 2, 1, 2, 2, 2, 0, 1, 2,
1, 2, 1, 1, 2, 1, 1, 2, 2, 2,
0, 1, 2, 2, 1, 2, 3, 1, 2, 1,
1, 2, 2, 1, 2, 2, 1, 2, 2, 1,
1, 2, 1, 1, 2, 2, 0, 1, 2, 1,
2, 2, 1, 2, 1, 2, 1, 2, 1, 0,
2, 1, 2, 3, 2, 1, 2, 2, 1, 2,
1, 2, 1, 2, 1, 1, 2, 1, 2, 2,
1, 2, 2, 1, 2, 0, 1, 2, 1, 1,
2, 1, 2, 3, 2, 2, 2, 1, 2, 1,
2, 1, 1, 2, 1, 2, 1, 2, 2, 2,
1, 0, 2, 1, 2, 1, 1, 2, 1, 1,
2, 2, 1, 2, 0, 2, 2, 1, 2, 1,
1, 4, 1, 1, 2, 1, 2, 2, 2, 2,
1, 2, 1, 1, 2, 1, 1, 2, 1, 2,
0, 2, 2, 1, 2, 1, 2, 1, 2, 1,
1, 2, 1, 0, 2, 2, 1, 2, 2, 3,
2, 1, 2, 1, 2, 1, 1, 2, 1, 2,
2, 1, 2, 2, 1, 2, 1, 2, 1, 0,
2, 1, 1, 2, 1, 2, 2, 1, 2, 2,
1, 2, 0, 1, 2, 3, 1, 2, 1, 2,
1, 2, 2, 2, 1, 2, 1, 2, 1, 1,
2, 1, 1, 2, 2, 1, 2, 2, 0
};
private final static String yuk[] = {"갑", "을", "병", "정", "무", "기", "경", "신", "임", "계"};
private final static String gap[] = {"자", "축", "인", "묘", "진", "사", "오", "미", "신", "유", "술", "해"};
private final static String ddi[] = {"쥐띠", "소띠", "범띠", "토끼띠", "용띠", "뱀띠", "말띠", "양띠", "원숭이띠", "닭띠", "개띠", "돼지띠"};
private final static String week[] = {"일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"};
private static final int m[] = {
31, 28, 31, 30, 31, 30, 31, 31, 30, 31,
30, 31
};
private static Date init_date;
private static final String errMsg = "입력값 에러";
/**
* 음력을 양력으로
*
* @param TranseDay 음력일('yyyyMMdd')
* @param leapyes 윤달 여부
* @return String 처리결과 양력일 엔티티
* @throws java.lang.Exception
*/
public static String LunarTranse(String TranseDay, boolean leapyes) throws Exception {
@SuppressWarnings("unused")
int dt[] = new int[163];
int lyear = Integer.parseInt(TranseDay.substring(0,4));
int lmonth = Integer.parseInt(TranseDay.substring(4,6));
int lday = Integer.parseInt(TranseDay.substring(6,8));
if(!leapyes && !verifyDate(lyear, lmonth, lday, "solar-"))
{
return "";
}
if(leapyes && !verifyDate(lyear, lmonth, lday, "solar+"))
{
return "";
}
int m1 = -1;
long td = 0L;
if(lyear != 1881)
{
m1 = lyear - 1882;
for(int i = 0; i <= m1; i++)
{
for(int j = 0; j < 13; j++)
td = td + (long)kk[i * 13 + j];
if(kk[i * 13 + 12] == 0)
td = td + 336L;
else
td = td + 362L;
}
}
m1++;
int n2 = lmonth - 1;
int m2 = -1;
do
{
m2++;
if(kk[m1 * 13 + m2] > 2)
{
td = td + 26L + (long)kk[m1 * 13 + m2];
n2++;
continue;
}
if(m2 == n2)
break;
td = td + 28L + (long)kk[m1 * 13 + m2];
} while(true);
if(leapyes)
td = td + 28L + (long)kk[m1 * 13 + m2];
td = td + (long)lday + 29L;
m1 = 1880;
do
{
m1++;
boolean leap = m1 % 400 == 0 || m1 % 100 != 0 && m1 % 4 == 0;
if(leap)
m2 = 366;
else
m2 = 365;
if(td < (long)m2)
break;
td = td - (long)m2;
} while(true);
int syear = m1;
m[1] = m2 - 337;
m1 = 0;
do
{
m1++;
if(td <= (long)m[m1 - 1])
break;
td = td - (long)m[m1 - 1];
} while(true);
int smonth = m1;
int sday = (int)td;
long y = (long)syear - 1L;
td = ((y * 365L + y / 4L) - y / 100L) + y / 400L;
boolean leap = syear % 400 == 0 || syear % 100 != 0 && syear % 4 == 0;
if(leap)
m[1] = 29;
else
m[1] = 28;
for(int i = 0; i < smonth - 1; i++)
td = td + (long)m[i];
td = td + (long)sday;
@SuppressWarnings("unused")
int w = (int)(td % 7L);
int i = (int)(td % 10L);
i = (i + 4) % 10;
int j = (int)(td % 12L);
j = (j + 2) % 12;
@SuppressWarnings("unused")
int k1 = (lyear + 6) % 10;
@SuppressWarnings("unused")
int k2 = (lyear + 8) % 12;
String sValue= String.valueOf(syear);
if(smonth<10)
sValue+="0";
sValue+= String.valueOf(smonth);
if(sday<10)
sValue+="0";
sValue+= String.valueOf(sday);
String return_value = sValue ;
return return_value;
}
/**
* 양력을 음력으로
*
* @param TranseDay 양력일('yyyyMMdd')
* @return String 처리결과 음력일
* @throws java.lang.Exception
*/
public static String solarTranse(String TranseDay) throws Exception {
// 2020.04.15 : 음력의 날자도 당해년도 음력 날자를 찾아서 주는 것으로.
long time = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyymmdd");
java.sql.Date dd = new java.sql.Date(time);
TranseDay = sdf.format(dd).substring(0, 4) + TranseDay.substring(4, 8) ;
int dt[] = new int[163];
for(int i = 0; i < 163; i++)
{
dt[i] = 0;
for(int j = 0; j < 12; j++)
switch(kk[i * 13 + j])
{
case 1: // '\001'
case 3: // '\003'
dt[i] = dt[i] + 29;
break;
case 2: // '\002'
case 4: // '\004'
dt[i] = dt[i] + 30;
break;
}
switch(kk[i * 13 + 12])
{
case 1: // '\001'
case 3: // '\003'
dt[i] = dt[i] + 29;
break;
case 2: // '\002'
case 4: // '\004'
dt[i] = dt[i] + 30;
break;
}
}
int syear = Integer.parseInt(TranseDay.substring(0,4));
int smonth = Integer.parseInt(TranseDay.substring(4,6));
int sday = Integer.parseInt(TranseDay.substring(6,8));
long k11 = syear - 1;
long td2 = ((k11 * 365L + k11 / 4L) - k11 / 100L) + k11 / 400L;
boolean ll = syear % 400 == 0 || syear % 100 != 0 && syear % 4 == 0;
if(ll)
m[1] = 29;
else
m[1] = 28;
if(!verifyDate(syear, smonth, sday, "lunar"))
{
throw new Exception("Date Error [" + syear + smonth + sday + "]");
}
for(int i = 0; i < smonth - 1; i++)
td2 = td2 + (long)m[i];
td2 = td2 + (long)sday;
long td = (td2 - 0xa7a5eL) + 1L;
long td0 = dt[0];
int i=0;
for(i = 0; i < 163; i++)
{
if(td <= td0)
break;
td0 = td0 + (long)dt[i + 1];
}
int lyear = i + 1881;
td0 = td0 - (long)dt[i];
td = td - td0;
int jcount=0;
if(kk[i * 13 + 12] != 0)
jcount = 13;
else
jcount = 12;
int m2 = 0;
int j=0;
int m1;
for(j = 0; j < jcount; j++)
{
if(kk[i * 13 + j] <= 2)
m2++;
if(kk[i * 13 + j] <= 2)
m1 = kk[i * 13 + j] + 28;
else
m1 = kk[i * 13 + j] + 26;
if(td <= (long)m1)
break;
td = td - (long)m1;
}
@SuppressWarnings("unused")
int m0 = j;
long lmonth = m2;
int lday = (int)td;
@SuppressWarnings("unused")
int w = (int)(td2 % 7L);
i = (int)((td2 + 4L) % 10L);
j = (int)((td2 + 2L) % 12L);
@SuppressWarnings("unused")
int i1 = (lyear + 6) % 10;
@SuppressWarnings("unused")
int j1 = (lyear + 8) % 12;
String sValue= String.valueOf(lyear);
if(lmonth<10)
sValue+="0";
sValue+= String.valueOf(lmonth);
if(lday<10)
sValue+="0";
sValue+= String.valueOf(lday);
String return_value = sValue ;
return return_value;
}
private static boolean verifyDate(int k, int l, int l1, String s)
{
if(k < 1881 || k > 2043 || l < 1 || l > 12)
return false;
if(s.equals("lunar") && l1 > m[l - 1])
return false;
if(s.equals("solar+"))
{
if(kk[(k - 1881) * 13 + 12] < 1)
return false;
if(kk[(k - 1881) * 13 + l] < 3)
return false;
if(kk[(k - 1881) * 13 + l] + 26 < l1)
return false;
}
if(s.equals("solar-"))
{
int j = l - 1;
for(int i = 1; i <= 12; i++)
if(kk[((k - 1881) * 13 + i) - 1] > 2)
j++;
if(l1 > kk[(k - 1881) * 13 + j] + 28)
return false;
}
return true;
}
public static String[] getYuk() {
return yuk;
}
public static String[] getGap() {
return gap;
}
public static String[] getDdi() {
return ddi;
}
public static String[] getWeek() {
return week;
}
public static void setInit_date(Date init_date) {
LunarTranser.init_date = init_date;
}
public static Date getInit_date() {
return init_date;
}
public static String getErrmsg() {
return errMsg;
}
}
그 예전 부터 지금까지 잘 사용하고 있으니, 소스의 변환 능력은 검증이 되었다고 볼 수 있을 것 같다.
사용하는 부분은 다음과 같다. 먼저 음력을 양력으로 변환 하기
LunarTranse(String TranseDay, boolean leapyes)
기준일자(yyyyMMdd : 8자리 숫자) 와 윤달 여부만 전달 하면 양력 으로 변환된 날자가 돌아온다.
다음은 양력을 음력으로 변환하기
solarTranse(String TranseDay)
기준일자(yyyyMMdd : 8자리 숫자)을 전달하면 음력으로 변환된 날자가 돌아온다.
이런 기능의 사용예시는 앞에서 기술한 바와 같이 앱으로 활용하고 있다.
https://play.google.com/store/apps/details?id=com.nari.lunar3google
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 앱 만들기 : 리사이클 뷰의 활용성에 대해서. (3) | 2022.01.09 |
---|---|
안드로이드 앱 만들기. 범블비가 업데이트 되었습니다. (0) | 2022.01.06 |
안드로이드 앱 만들기 : 옵디강 (제주맛집) 기능 추가 버스 정류소 위치 (3) | 2021.12.26 |
안드로이드 앱 만들기 : retrofit xml 파싱 : 제주도 버스 정보 (5) | 2021.12.25 |
안드로이드 앱 만들기 : 별점 주기 (0) | 2021.12.17 |