FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[3078] mssql의 음력을 양력으로 변환하는 store procedure를 firebird로 바꾸자
한울 [sjydevil] 5673 읽음    2009-05-26 20:43
음력을 양력으로 변환할려구 자료를 찾아보던 중

http://sqler.pe.kr/web_board/view_list.asp?id=692&read=4225&pagec=&found=is&part=myboard7&ser=yes

에서 음력을 양력으로 변환하는 프로시져를 찾았습니다.

그런데 firebird에서 사용 가능한 형태로 바꿀 수가 없네요.

실력이 딸려서....

firebird 고수께서 좀 바꾸어 주세요..

부탁드립니다.


--################# 음력 => 양력 (함수) ###################

create proc LunaToSola @LunaDay varchar(12), @yun varchar(1) = 'n'
as
if (year(@LunaDay) < year('1901')) or (year(@LunaDay) > year('2043')) return

declare @tYearDays int, @i int, @m_Str varchar(20)
declare @int_year int, @int_month tinyint

select @int_year = year('1901'), @tYearDays = 0
while @int_year < year(@LunaDay) begin
   select @tYearDays = @tYearDays + (select y_total from LunarSet where yyyy = @int_year)
   set @int_year = @int_year + 1
end

set @int_month = 1
select @m_Str = m1 + m2 + m3 + m4 + m5 + m6 + m7 + m8 + m9 + m10 + m11 + m12 from LunarSet where yyyy = @int_year
while @int_month < month(@LunaDay) begin
   select @tYearDays = @tYearDays + (case cast(substring(@m_Str, @int_month, 1) as int) when 1 then 29 when 2 then 30
        when 3 then 58 when 4 then 59 when 5 then 59 when 6 then 60 end)
   set @int_month = @int_month + 1
end

if @yun = 'n' begin  --윤달이 아닐때
   set @tYearDays = @tYearDays + day(@LunaDay)
end
else if @yun = 'y' begin  --윤달일때
   select @tYearDays = @tYearDays + (case cast(substring(@m_Str,month(@LunaDay), 1) as int)
            when 3 then 29 when 4 then 29 when 5 then 30 when 6 then 30 else null end)
   set @tYearDays = @tYearDays + day(@LunaDay)
end

select convert(varchar(10),dateadd(dd, @tYearDays-1, '1901-02-19'), 120)


-- #############  음력 일수 도표!!  #####################

create table LunarSet (yyyy int, m1 char(1), m2 char(1), m3 char(1), m4 char(1), m5 char(1), m6 char(1),
        m7 char(1), m8 char(1), m9 char(1), m10 char(1), m11 char(1), m12 char(1), y_total int)

insert into LunarSet values(1901, 1, 2, 1, 1, 2, 1,    2, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(1902, 2, 1, 2, 1, 1, 2,    1, 2, 1, 2, 2, 2, 355)
insert into LunarSet values(1903, 1, 2, 1, 2, 3, 2,    1, 1, 2, 2, 1, 2, 383)
insert into LunarSet values(1904, 2, 2, 1, 2, 1, 1,    2, 1, 1, 2, 2, 1, 354)
insert into LunarSet values(1905, 2, 2, 1, 2, 2, 1,    1, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(1906, 1, 2, 2, 4, 1, 2,    1, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(1907, 1, 2, 1, 2, 1, 2,    2, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1908, 2, 1, 1, 2, 2, 1,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(1909, 1, 5, 1, 2, 1, 2,    1, 2, 2, 2, 1, 2, 384)
insert into LunarSet values(1910, 1, 2, 1, 1, 2, 1,    2, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(1911, 2, 1, 2, 1, 1, 5,    1, 2, 2, 1, 2, 2, 384)
insert into LunarSet values(1912, 2, 1, 2, 1, 1, 2,    1, 1, 2, 2, 1, 2, 354)
insert into LunarSet values(1913, 2, 2, 1, 2, 1, 1,    2, 1, 1, 2, 1, 2, 354)
insert into LunarSet values(1914, 2, 2, 1, 2, 5, 1,    2, 1, 2, 1, 1, 2, 384)
insert into LunarSet values(1915, 2, 1, 2, 2, 1, 2,    1, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(1916, 1, 2, 1, 2, 1, 2,    2, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1917, 2, 3, 2, 1, 2, 2,    1, 2, 2, 1, 2, 1, 384)
insert into LunarSet values(1918, 2, 1, 1, 2, 1, 2,    1, 2, 2, 2, 1, 2, 355)
insert into LunarSet values(1919, 1, 2, 1, 1, 2, 1,    5, 2, 2, 1, 2, 2, 384)
insert into LunarSet values(1920, 1, 2, 1, 1, 2, 1,    1, 2, 2, 1, 2, 2, 354)
insert into LunarSet values(1921, 2, 1, 2, 1, 1, 2,    1, 1, 2, 1, 2, 2, 354)
insert into LunarSet values(1922, 2, 1, 2, 2, 3, 2,    1, 1, 2, 1, 2, 2, 384)
insert into LunarSet values(1923, 1, 2, 2, 1, 2, 1,    2, 1, 2, 1, 1, 2, 354)
insert into LunarSet values(1924, 2, 1, 2, 1, 2, 2,    1, 2, 1, 2, 1, 1, 354)
insert into LunarSet values(1925, 2, 1, 2, 5, 2, 1,    2, 2, 1, 2, 1, 2, 385)
insert into LunarSet values(1926, 1, 1, 2, 1, 2, 1,    2, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(1927, 2, 1, 1, 2, 1, 2,    1, 2, 2, 1, 2, 2, 355)
insert into LunarSet values(1928, 1, 5, 1, 2, 1, 1,    2, 2, 1, 2, 2, 2, 384)
insert into LunarSet values(1929, 1, 2, 1, 1, 2, 1,    1, 2, 1, 2, 2, 2, 354)
insert into LunarSet values(1930, 1, 2, 2, 1, 1, 5,    1, 2, 1, 2, 2, 1, 383)
insert into LunarSet values(1931, 2, 2, 2, 1, 1, 2,    1, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1932, 2, 2, 2, 1, 2, 1,    2, 1, 1, 2, 1, 2, 355)
insert into LunarSet values(1933, 1, 2, 2, 1, 6, 1,    2, 1, 2, 1, 1, 2, 384)
insert into LunarSet values(1934, 1, 2, 1, 2, 2, 1,    2, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(1935, 1, 1, 2, 1, 2, 1,    2, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(1936, 2, 1, 4, 1, 2, 1,    2, 1, 2, 2, 2, 1, 384)
insert into LunarSet values(1937, 2, 1, 1, 2, 1, 1,    2, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(1938, 2, 2, 1, 1, 2, 1,    4, 1, 2, 2, 1, 2, 384)
insert into LunarSet values(1939, 2, 2, 1, 1, 2, 1,    1, 2, 1, 2, 1, 2, 354)
insert into LunarSet values(1940, 2, 2, 1, 2, 1, 2,    1, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1941, 2, 2, 1, 2, 2, 4,    1, 1, 2, 1, 2, 1, 384)
insert into LunarSet values(1942, 2, 1, 2, 2, 1, 2,    2, 1, 2, 1, 1, 2, 355)
insert into LunarSet values(1943, 1, 2, 1, 2, 1, 2,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(1944, 1, 1, 2, 4, 1, 2,    1, 2, 2, 1, 2, 2, 384)
insert into LunarSet values(1945, 1, 1, 2, 1, 1, 2,    1, 2, 2, 2, 1, 2, 354)
insert into LunarSet values(1946, 2, 1, 1, 2, 1, 1,    2, 1, 2, 2, 1, 2, 354)
insert into LunarSet values(1947, 2, 5, 1, 2, 1, 1,    2, 1, 2, 1, 2, 2, 384)
insert into LunarSet values(1948, 2, 1, 2, 1, 2, 1,    1, 2, 1, 2, 1, 2, 354)
insert into LunarSet values(1949, 2, 2, 1, 2, 1, 2,    3, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(1950, 2, 1, 2, 2, 1, 2,    1, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1951, 2, 1, 2, 2, 1, 2,    1, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(1952, 1, 2, 1, 2, 4, 2,    1, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(1953, 1, 2, 1, 1, 2, 2,    1, 2, 2, 1, 2, 2, 355)
insert into LunarSet values(1954, 1, 1, 2, 1, 1, 2,    1, 2, 2, 1, 2, 2, 354)
insert into LunarSet values(1955, 2, 1, 4, 1, 1, 2,    1, 2, 1, 2, 2, 2, 384)
insert into LunarSet values(1956, 1, 2, 1, 2, 1, 1,    2, 1, 2, 1, 2, 2, 354)
insert into LunarSet values(1957, 2, 1, 2, 1, 2, 1,    1, 5, 2, 1, 2, 2, 384)
insert into LunarSet values(1958, 1, 2, 2, 1, 2, 1,    1, 2, 1, 2, 1, 2, 354)
insert into LunarSet values(1959, 1, 2, 2, 1, 2, 1,    2, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1960, 2, 1, 2, 1, 2, 5,    2, 1, 2, 1, 2, 1, 384)
insert into LunarSet values(1961, 2, 1, 2, 1, 2, 1,    2, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(1962, 1, 2, 1, 1, 2, 1,    2, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(1963, 2, 1, 2, 3, 2, 1,    2, 1, 2, 2, 2, 1, 384)
insert into LunarSet values(1964, 2, 1, 2, 1, 1, 2,    1, 2, 1, 2, 2, 2, 355)
insert into LunarSet values(1965, 1, 2, 1, 2, 1, 1,    2, 1, 1, 2, 2, 1, 353)
insert into LunarSet values(1966, 2, 2, 5, 2, 1, 1,    2, 1, 1, 2, 2, 1, 384)
insert into LunarSet values(1967, 2, 2, 1, 2, 2, 1,    1, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(1968, 1, 2, 2, 1, 2, 1,    5, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(1969, 1, 2, 1, 2, 1, 2,    2, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(1970, 2, 1, 1, 2, 2, 1,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(1971, 1, 2, 1, 1, 5, 2,    1, 2, 2, 2, 1, 2, 384)
insert into LunarSet values(1972, 1, 2, 1, 1, 2, 1,    2, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(1973, 2, 1, 2, 1, 1, 2,    1, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(1974, 2, 2, 1, 5, 1, 2,    1, 1, 2, 2, 1, 2, 384)
insert into LunarSet values(1975, 2, 2, 1, 2, 1, 1,    2, 1, 1, 2, 1, 2, 354)
insert into LunarSet values(1976, 2, 2, 1, 2, 1, 2,    1, 5, 2, 1, 1, 2, 384)
insert into LunarSet values(1977, 2, 1, 2, 2, 1, 2,    1, 2, 1, 2, 1, 1, 354)
insert into LunarSet values(1978, 2, 2, 1, 2, 1, 2,    2, 1, 2, 1, 2, 1, 355)
insert into LunarSet values(1979, 2, 1, 1, 2, 1, 6,    1, 2, 2, 1, 2, 1, 384)
insert into LunarSet values(1980, 2, 1, 1, 2, 1, 2,    1, 2, 2, 1, 2, 2, 355)
insert into LunarSet values(1981, 1, 2, 1, 1, 2, 1,    1, 2, 2, 1, 2, 2, 354)
insert into LunarSet values(1982, 2, 1, 2, 3, 2, 1,    1, 2, 2, 1, 2, 2, 384)
insert into LunarSet values(1983, 2, 1, 2, 1, 1, 2,    1, 1, 2, 1, 2, 2, 354)
insert into LunarSet values(1984, 2, 1, 2, 2, 1, 1,    2, 1, 1, 5, 2, 2, 384)
insert into LunarSet values(1985, 1, 2, 2, 1, 2, 1,    2, 1, 1, 2, 1, 2, 354)
insert into LunarSet values(1986, 1, 2, 2, 1, 2, 2,    1, 2, 1, 2, 1, 1, 354)
insert into LunarSet values(1987, 2, 1, 2, 2, 1, 5,    2, 2, 1, 2, 1, 2, 385)
insert into LunarSet values(1988, 1, 1, 2, 1, 2, 1,    2, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(1989, 2, 1, 1, 2, 1, 2,    1, 2, 2, 1, 2, 2, 355)
insert into LunarSet values(1990, 1, 2, 1, 1, 5, 1,    2, 1, 2, 2, 2, 2, 384)
insert into LunarSet values(1991, 1, 2, 1, 1, 2, 1,    1, 2, 1, 2, 2, 2, 354)
insert into LunarSet values(1992, 1, 2, 2, 1, 1, 2,    1, 1, 2, 1, 2, 2, 354)
insert into LunarSet values(1993, 1, 2, 5, 2, 1, 2,    1, 1, 2, 1, 2, 1, 383)
insert into LunarSet values(1994, 2, 2, 2, 1, 2, 1,    2, 1, 1, 2, 1, 2, 355)
insert into LunarSet values(1995, 1, 2, 2, 1, 2, 2,    1, 5, 2, 1, 1, 2, 384)
insert into LunarSet values(1996, 1, 2, 1, 2, 2, 1,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(1997, 1, 1, 2, 1, 2, 1,    2, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(1998, 2, 1, 1, 2, 3, 2,    2, 1, 2, 2, 2, 1, 384)
insert into LunarSet values(1999, 2, 1, 1, 2, 1, 1,    2, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(2000, 2, 2, 1, 1, 2, 1,    1, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(2001, 2, 2, 2, 3, 2, 1,    1, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(2002, 2, 2, 1, 2, 1, 2,    1, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(2003, 2, 2, 1, 2, 2, 1,    2, 1, 1, 2, 1, 2, 355)
insert into LunarSet values(2004, 1, 5, 2, 2, 1, 2,    1, 2, 2, 1, 1, 2, 384)
insert into LunarSet values(2005, 1, 2, 1, 2, 1, 2,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(2006, 1, 1, 2, 1, 2, 1,    5, 2, 2, 1, 2, 2, 384)
insert into LunarSet values(2007, 1, 1, 2, 1, 1, 2,    1, 2, 2, 2, 1, 2, 354)
insert into LunarSet values(2008, 2, 1, 1, 2, 1, 1,    2, 1, 2, 2, 1, 2, 354)
insert into LunarSet values(2009, 2, 2, 1, 1, 5, 1,    2, 1, 2, 1, 2, 2, 384)
insert into LunarSet values(2010, 2, 1, 2, 1, 2, 1,    1, 2, 1, 2, 1, 2, 354)
insert into LunarSet values(2011, 2, 1, 2, 2, 1, 2,    1, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(2012, 2, 1, 6, 2, 1, 2,    1, 1, 2, 1, 2, 1, 384)
insert into LunarSet values(2013, 2, 1, 2, 2, 1, 2,    1, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(2014, 1, 2, 1, 2, 1, 2,    1, 2, 5, 2, 1, 2, 384)
insert into LunarSet values(2015, 1, 2, 1, 1, 2, 1,    2, 2, 2, 1, 2, 2, 355)
insert into LunarSet values(2016, 1, 1, 2, 1, 1, 2,    1, 2, 2, 1, 2, 2, 354)
insert into LunarSet values(2017, 2, 1, 1, 2, 3, 2,    1, 2, 1, 2, 2, 2, 384)
insert into LunarSet values(2018, 1, 2, 1, 2, 1, 1,    2, 1, 2, 1, 2, 2, 354)
insert into LunarSet values(2019, 2, 1, 2, 1, 2, 1,    1, 2, 1, 2, 1, 2, 354)
insert into LunarSet values(2020, 2, 1, 2, 5, 2, 1,    1, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(2021, 1, 2, 2, 1, 2, 1,    2, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(2022, 2, 1, 2, 1, 2, 2,    1, 2, 1, 2, 1, 2, 355)
insert into LunarSet values(2023, 1, 5, 2, 1, 2, 1,    2, 2, 1, 2, 1, 2, 384)
insert into LunarSet values(2024, 1, 2, 1, 1, 2, 1,    2, 2, 1, 2, 2, 1, 354)
insert into LunarSet values(2025, 2, 1, 2, 1, 1, 5,    2, 1, 2, 2, 2, 1, 384)
insert into LunarSet values(2026, 2, 1, 2, 1, 1, 2,    1, 2, 1, 2, 2, 2, 355)
insert into LunarSet values(2027, 1, 2, 1, 2, 1, 1,    2, 1, 1, 2, 2, 2, 354)
insert into LunarSet values(2028, 1, 2, 2, 1, 5, 1,    2, 1, 1, 2, 2, 1, 383)
insert into LunarSet values(2029, 2, 2, 1, 2, 2, 1,    1, 2, 1, 1, 2, 2, 355)
insert into LunarSet values(2030, 1, 2, 1, 2, 2, 1,    2, 1, 2, 1, 2, 1, 354)
insert into LunarSet values(2031, 2, 1, 5, 2, 1, 2,    2, 1, 2, 1, 2, 1, 384)
insert into LunarSet values(2032, 2, 1, 1, 2, 1, 2,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(2033, 1, 2, 1, 1, 2, 1,    5, 2, 2, 2, 1, 2, 384)
insert into LunarSet values(2034, 1, 2, 1, 1, 2, 1,    2, 1, 2, 2, 2, 1, 354)
insert into LunarSet values(2035, 2, 1, 2, 1, 1, 2,    1, 1, 2, 2, 1, 2, 354)
insert into LunarSet values(2036, 2, 2, 1, 2, 1, 4,    1, 1, 2, 1, 2, 2, 384)
insert into LunarSet values(2037, 2, 2, 1, 2, 1, 1,    2, 1, 1, 2, 1, 2, 354)
insert into LunarSet values(2038, 2, 2, 1, 2, 1, 2,    1, 2, 1, 1, 2, 1, 354)
insert into LunarSet values(2039, 2, 2, 1, 2, 5, 2,    1, 2, 1, 2, 1, 1, 384)
insert into LunarSet values(2040, 2, 1, 2, 2, 1, 2,    2, 1, 2, 1, 2, 1, 355)
insert into LunarSet values(2041, 2, 1, 1, 2, 1, 2,    2, 1, 2, 2, 1, 2, 355)
insert into LunarSet values(2042, 1, 5, 1, 2, 1, 2,    1, 2, 2, 2, 1, 2, 384)
insert into LunarSet values(2043, 1, 2, 1, 1, 2, 1,    1, 2, 2, 1, 2, 2, 354)

+ -

관련 글 리스트
3078 mssql의 음력을 양력으로 변환하는 store procedure를 firebird로 바꾸자 한울 5673 2009/05/26
3079     Re:mssql의 음력을 양력으로 변환하는 store procedure를 firebird로 바꾸자 자이언츠월드 3448 2009/05/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.