2026/02/23

오늘의 이야기



오늘 나오는 바탕화면의 이미지는 겨울이 정말 깊게 와 있는 것 같다. 우리동네 오늘 기온이 -13도 체감은 더 한 것 같기도 하고... 이제 몇날 남지 않은 이해가 다 가고 있기도 하고...


 


날이 춥다.  따스한 봄이 오길 기다리면... 오늘도 총총...





오늘의 이야기


행복한 크리스마스 되세요.





오늘의 이야기


#스하리1000명프로젝트,
한국에서 길을 잃었나요? 한국어를 못하더라도 이 앱을 사용하면 쉽게 돌아다닐 수 있습니다.
귀하의 언어로 말하면 귀하의 언어로 번역, 검색 및 결과가 표시됩니다.
여행자에게 좋습니다! 영어, 일본어, 중국어, 베트남어 등 10개 이상의 언어를 지원합니다.
지금 사용해 보세요!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




2026/02/22

오늘의 이야기

배경화면 이미지



이렇게 눈이 온걸 본적은 모니터 화면에 나오는 설경이 아름답다.   이 겨울도 이렇게 눈 구경 한번 제대로 못하고 지나갈까? 이 겨울엔 한 번쯤 꼭 눈 구경하러 가야겠다.


 


낼모레가 크리스마스라는데... 나이를 먹어서 인가? 그다지 흥이 나지 않는다. 그저 또 한 해가 가버리는구나 하는 생각만 들뿐...


 





오늘의 이야기



#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase

🎯 야 너 토요일마다 로또 확인하냐?
나도 맨날 "혹시나~" 하면서 봤거든 ㅋㅋ

근데 이제는 그냥 안 해
AI한테 맡겼어 🤖✨

그것도 구글 Gemini로다가!

그래서 앱 하나 만들었지
👉 "로또 예상번호 by Gemini" 🎱

AI가 분석해서 번호 딱! 뽑아줌
그냥 보고 참고만 하면 됨

재미로 해도 좋고…
혹시 모르는 거잖아? 😏


https://play.google.com/store/apps/details?id=com.billcorea.gptlotto1127




오늘의 이야기




동짓날 먹어 보는 팥죽...

네이버에게 물었더니 알려준  죽 집
진국이기는 하다.

줄이 좀 있네요.  날이 날인지라...






오늘의 이야기



바탕화면에 갑자기 나타난 사슴 한마리...
눈길에서 집으로 잘 찾아가길...

하얀눈길이 잘 보일까?

오늘도 좋은 밤 되길...





오늘의 이야기


#스하리1000명프로젝트

스치니들!
내가 만든 이 앱은, 내 폰에 오는 알림 중에서 중요한 키워드가 있는 경우
등록해둔 친구에게 자동으로 전달해주는 앱이야 📲

예를 들어, 카드 결제 알림을 와이프나 자녀에게 보내주거나
이번 달 지출을 달력처럼 확인할 수도 있어!

앱을 함께 쓰려면 친구도 설치 & 로그인해줘야 해.
그래야 친구 목록에서 서로 선택할 수 있으니까~
서로 써보고 불편한 점 있으면 알려줘 🙏

👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

이메일



난 고작   $7.75을 유지 하고 있을 뿐인데...

애드센스 연동



언제면 처음으로 외화벌이(?)를 할 수 있을까 ??? 나도 앵벌이 인가 ??? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

$100가 되려면 아직 갈길이 멀다...





오늘의 이야기

예전에 어떤 앱을 만들기 할 때 사용했던 음력 변환 하는 소스를 어딘가에서 찾았던 거 같은데... 다시 한번 기억해 보기 위해서 적어 보기로 했다. 


 


https://billcorea.tistory.com/4



 


구글로간 음력 설명서


새로운 버젼으로 업데이트 해 드립니다. Google Calendar 에서는 아직 음력 관리를 원할하게 해 주지 않는 현상이 있었습니다. 그래서 과거에 만들었던 앱을 다시 만들어 보았습니다. 2020.06.20 구글에


billcorea.tistory.com




 


이건 어딘가에서 퍼왔던 소스인데, 기억이 가물 가물 하다.  


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 



 


음력달력, 일정관리 - Google Play 앱


음력을 양력으로 변환하여 관리 합니다. 양력은 음력으로 관리 합니다.


play.google.com




 





오늘의 이야기


#스하리1000명프로젝트,
في بعض الأحيان يكون من الصعب التحدث مع العمال الأجانب، أليس كذلك؟
لقد صنعت تطبيقًا بسيطًا يساعد! أنت تكتب بلغتك، والآخرون يرون ذلك بلغتهم.
يترجم تلقائيًا بناءً على الإعدادات.
مفيد للغاية لإجراء محادثات سهلة. ألق نظرة عندما تحصل على فرصة!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

예전에 listview 을 이용해서 화면에 정보를 표시하는 기능을 구현했다. 단순 목록 형태의 리스트 뷰이기 때문에 데이터를 여러개 보여줄 때 쉽게 사용할 수 있었기 때문이기도 하고... 뭐 아무튼지...   그러다가 recycleview 을 알게 되...