기금넷 공식사이트 - 복권 조회 - 안녕하세요, 이 프로그램의 차트를 주시겠습니까? 감사합니다

안녕하세요, 이 프로그램의 차트를 주시겠습니까? 감사합니다

//C5 1 양력을 음력과 주로 변환합니다.

# uchar 부호 없는 문자 정의

# uint 부호 없는 정수 정의

# include & ltintrins.h & gt

/*

음력 데이터는 양력 연도, 연간 3 바이트,

형식의 첫 번째 바이트인 BIT7-4 는 윤월을, 값 0 은 윤월이 없음을, BIT3-0 은 음력 1-4 월의 크기에 해당합니다.

두 번째 바이트인 BIT7-0 은 5-65438+2 월 음력월의 크기에 해당하고, 세 번째 바이트인 BIT7 은 13 음력월의 크기를 나타냅니다.

월의 해당 위치는 1 으로 이 음력의 월이 크면 (30 일), 0 은 작은 (29 일) 을 의미합니다.

세 번째 바이트인 비트 6-5 는 설의 양력 월을 나타내고 비트 4-0 은 설의 양력 날짜를 나타냅니다.

*/

코드 uchar year_code[597] = {

0x04,0xae,0x53, // 190 1 0

0x0A, 0x57, 0x48,/1902 3

0x55,0x26,0xbd, // 1903 6

0x0d, 0x26, 0x50,/1904 9

0x95, 0x95,0x44,/190512

0x46,0xaa,0xb9, // 1906 15

0x05,0x6a,0x4d, // 1907 18

0x09,0xad,0x42, // 1908 2 1

0x24,0xae,0xb6, // 1909

0x04,0xae,0x4a, // 19 10

0x6A, 0x4d, 0xBe,/1911

0x0A, 0x4d, 0x52,/1912

0x25, 0x25,0x46,/1913

0x5d,0x52,0xba, // 19 14

0x0B, 0x54,0x4e, // 19 15

0x0d, 0x6A, 0x43,/1916

0x29,0x6d,0x37, // 19 17

0x09,0x5b,0x4b, // 19 18

0x74,0x9b,0xc1,// 19 19

0x04,0x97,0x54, // 1920

0x0A, 0x4B, 0x48,/1921

0x5B, 0x25,0xbc, // 1922

0x06,0xa5,0x50, // 1923

0x06,0xd4,0x45, // 1924

0x4A, 0xdA, 0xB8, // 1925

0x02,0xb6,0x4d, // 1926

0x09,0x57,0x42, // 1927

0x24,0x97,0xb7, // 1928

0x04,0x97,0x4a, // 1929

0x66,0x4b,0x3e, // 1930

0x0d, 0x4A, 0x5 1, // 193 1

0x0e, 0xA5, 0x46, // 1932

0x56,0xd4,0xba, // 1933

0x05,0xad,0x4e, // 1934

0x02,0xb6,0x44, // 1935

0x39,0x37,0x38, // 1936

0x09,0x2e,0x4b, // 1937

0x7C, 0x96,0xbf, // 1938

0x0C, 0x95,0x53, // 1939

0x0d, 0x4A, 0x48,/1940

0x6d,0xa5,0x3b, // 194 1

0x0B, 0x55,0x4f, // 1942

0x05,0x6a,0x45, // 1943

0x4A, 0xAd, 0xB9, // 1944

0x02,0x5d,0x4d, // 1945

0x09,0x2d,0x42, // 1946

0x2C, 0x95,0xb6, // 1947

0x0A, 0x95,0x4a, // 1948

0x7B, 0x4A, 0xBd,/1949

0x06,0xca,0x51,// 1950

0x0B, 0x55,0x46,/1951

0x55,0x5a,0xbb, // 1952

0x04,0xda,0x4e, // 1953

0x0A, 0x5B, 0x43,/1954

0x35,0x2b,0xb8, // 1955

0x05,0x2b,0x4c, // 1956

0x8A, 0x95,0x3f, // 1957

0x0e, 0x95, 0x52,/1958

0x06,0xaa,0x48, // 1959

0x7A, 0xd5, 0x3C,/1960

0x0A, 0xB5, 0x4f, // 196 1

0x04,0xb6,0x45, // 1962

0x4A, 0x57,0x39, // 1963

0x0A, 0x57, 0x4d,/1964

0x05,0x26,0x42, // 1965

0x93, 0x93,0x35, // 1966

0x0d, 0x95, 0x49,/1967

0x75,0xaa, 0x75, // 1968

0x05,0x6a,0x51,// 1969

0x09,0x6d,0x46, // 1970

0x54,0xae,0xbb, // 197 1

0x04,0xad,0x4f, // 1972

0x0A, 0x4d, 0x43,/1973

0x26, 0x26,0xb7, // 1974

0x25, 0x25,0x4b,/1975

0x52, 0x52,0xbf, // 1976

0x0B, 0x54,0x52,/1977

0x0B, 0x6A, 0x47,/1978

0x69,0x6d,0x3c, // 1979

0x09,0x5b,0x50, // 1980

0x04,0x9b,0x45, // 198 1

0x4A, 0x4B, 0xB9, // 1982

0x0A, 0x4B, 0x4d,/1983

0xAB, 0x25,0xc2, // 1984

0x06,0xa5,0x54, // 1985

0x06,0xd4,0x49, // 1986

0x6A, 0xdA, 0x3d,/1987

0x0A, 0xB6, 0x5 1, // 1988

0x09,0x37,0x46, // 1989

0x54,0x97,0xbb, // 1990

0x04,0x97,0x4f, // 199 1

0x06,0x4b,0x44, // 1992

0x36,0xa5,0x37, // 1993

0x0e, 0xA5, 0x4A, // 1994

0x86,0xb2,0xbf, // 1995

0x05,0xac,0x53, // 1996

0x0A, 0xB6, 0x47, // 1997

0x59,0x36,0xbc, // 1998

0x09,0x2e,0x50, // 1999 294

0x0C, 0x96,0x45, //2000 297

0x4d, 0x4A, 0xB8, //200 1

0x0d, 0x4A, 0x4C, //2002

0x0d, 0xA5, 0x4 1, //2003

0x25,0xaa, 0x25, //2004

0x05,0x6a,0x49,//0x05

0x7A, 0xAd, 0xBd, //2006

0x02,0x5d,0x52,//0x02

0x09,0x2d,0x47,//0x09

0x5C, 0x95,0xba, //2009

0x0A, 0x95,0x4e, //20 10

0x0B, 0x4A, 0x43, //20 1 1

0x4B, 0x55,0x37, //20 12

0x0A, 0xd5, 0x4A, //20 13

0x95,0x5a,0xbf, //20 14

0x04,0xba, 0x04, //20 15

0x0A, 0x5B, 0x48, //20 16

0x65,0x2b,0xbc, //20 17

0x05,0x2b,0x50, //20 18

0x0A, 0x93,0x45, //20 19

0x47,0x4a,0xb9, //2020

0x06,0xaa, 0x06, //202 1

0x0A, 0xd5, 0x4 1, //2022

0x24,0xda, 0x24, //2023

0x04,0xb6,0x4a,//0x04

0x69,0x57,0x3d,//0x57

0x0A, 0x4e, 0x5 1, //2026

0x0d, 0x26, 0x46, //2027

0x93, 0x93,0x3a, //2028

0x53, 0x53,0x4d, //2029

0x05,0xaa, 0x05, //2030

0x36,0xb5,0x37, //203 1

0x09,0x6d,0x4b, //2032

0xb4,0xae,0xbf, //2033

0x04,0xad,0x53,//0x04

0x0A, 0x4d, 0x48, //2035

0x25, 0x25,0xbc, //2036

0x25, 0x25,0x4f, //2037

0x52, 0x52,0x44, //2038

0x5d, 0xAA, 0x38, //2039

0x0B, 0x5A, 0x4C, //2040

0x05,0x6d,0x41,//204 1

0x24,0xad,0xb6,//0x24

0x04,0x9b,0x4a,//0x04

0x7A, 0x4B, 0xBe, //2044

0x0A, 0x4B, 0x5 1, //2045

0x0A, 0xA5, 0x46, //2046

0x5B, 0x52,0xba, //2047

0x06,0xd2,0x4e,//0x4e

0x0A, 0xdA, 0x42, //2049

0x35,0x5b,0x37,//0x5B

0x09,0x37,0x4b, //205 1

0x84,0x97,0xc1,//2052

0x04,0x97,0x53,//0x53

0x06,0x4b,0x48,//0x4B

0x66,0xa5,0x3c,//0xA5

0x0e, 0xA5, 0x4f, //2056

0x06,0xb2,0x44, //2057

0x4A, 0xB6, 0x38, //2058

0x0A, 0xAe, 0x4C, //2059

0x09,0x2e,0x42,//0x09

0x3C, 0x97,0x35, //206 1

0x0C, 0x96,0x49, //2062

0x7d, 0x4A, 0xBd, //2063

0x0d, 0x4A, 0x5 1, //2064

0x0d, 0xA5, 0x45, //2065

0x55,0xaa, 0x55, //2066

0x05,0x6a,0x4e,//0x6A

0x0A, 0x6d, 0x43, //2068

0x45,0x2e, 0x45, //2069

0x05,0x2d,0x4b,//0x05

0x8A, 0x95,0xbf, //207 1

0x0A, 0x95,0x53, //2072

0x0B, 0x4A, 0x47, //2073

0x6B, 0x55,0x3b, //2074

0x0A, 0xd5, 0x4f, //2075

0x05,0x5a,0x45, //2076

0x4A, 0x5d, 0x38, //2077

0x0A, 0x5B, 0x4C, //2078

0x05,0x2b,0x42, //2079

0x3A, 0x93,0xb6, //2080

0x06,0x93,0x49, //208 1

0x77,0x29,0xbd,//0x29

0x06,0xaa,0x51,//2083

0x0A, 0xd5, 0x46, //2084

0x54,0xda, 0x54, //2085

0x04,0xb6,0x4e,//0xB6

0x0A, 0x57, 0x43, //2087

0x45,0x27,0x38,//0x38

0x26, 0x26,0x4a, //2089

0x93, 0x93,0x3e, //2090

0x52, 0x52,0x52, //209 1

0x0d, 0xAA, 0x47, //2092

0x66,0xb5,0x3b,//0x3B

0x05,0x6d,0x4f,//0x4f

0x04,0xae,0x45,//0x45

0x4A, 0x4e, 0xB9, //2096

0x0A, 0x4d, 0x4C, //2097

0x0d, 0x15,0x41,//2098

0x92, 0x92,0xb5, //2099

}

///월별 데이터 시트

코드 ucharday _ code1[9] = {0x0,0x1f,0x3b,0x5a,0x78,0x97

코드 uintday _ code2 [3] = {0x111,0x 130/

/*

기능: BCD 양력 데이터를 입력하고 BCD 음력 데이터를 출력합니다 (190 1-2099 만 허용).

호출 함수 예: 변환 (c _ sun, year _ sun, month _ sun, day _ sun)

예를 들어 2004 년 6 월 16 일 환산 계산 (0,0x4,0x10,0x16);

C_sun, Year _ Sun, Month _ Sun, Day _ Sun 은 BCD 데이터, C _ Sun 은 세기 마크, c_sun=0 은 2/kloc-0 입니다

지, c_sun= 1 예 19 세기.

이 함수를 호출한 후에도 원시 데이터는 그대로 유지됩니다. C _ moon, Year _ moon, Month _ moon 및 Day _ moon 을 읽어 음력의 BCD 데이터를 얻습니다.

*/

비트 c _ moon

데이터 uchar 년 _ 월, 월 _ 월, 일 _ 월, 주;

/* 데이터 테이블에서 음력 설날 또는 소월을 읽는 하위 기능. 월이 크면 1 을 반환하고 월이 작으면 0*/ 를 반환합니다

비트 get_moon_day(uchar month_p, uint table_addr)

{

Uchar 온도;

스위치 (월 _p)

{

시나리오1:{temp = year _ code [table _ addr] & 0x08

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 2: {temp = year _ code [table _ addr] & 0x04

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 3: {temp = year _ code [table _ addr] & 0x02

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 4: {temp = year _ code [table _ addr] & 0x01;

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 5: {temp = year _ code [table _ addr+1] & 0x80

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 6: {temp = year _ code [table _ addr+1] & 0x40

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 7: {temp = year _ code [table _ addr+1] & 0x20

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 8: {temp = year _ code [table _ addr+1] & 0x10;

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오 9: {temp = year _ code [table _ addr+1] & 0x08

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오10: {temp = year _ code [table _ addr+1] & 0x04

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

케이스11:{temp = year _ code [table _ addr+1] & 0x02

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오12: {temp = year _ code [table _ addr+1] & 0x01;

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

시나리오13: {temp = year _ code [table _ addr+2] & 0x80

If (temp==0) 는 (0) 을 반환합니다. Else 반환 (1); }

}

}

/*

기능: BCD 양력 데이터를 입력하고 BCD 음력 데이터를 출력합니다 (190 1-2099 만 허용).

호출 함수 예: 변환 (c _ sun, year _ sun, month _ sun, day _ sun)

예를 들어 2004 년 6 월 16 일 환산 계산 (0,0x4,0x10,0x16);

C_sun, Year _ Sun, Month _ Sun, Day _ Sun 은 BCD 데이터, C _ Sun 은 세기 마크, c_sun=0 은 2/kloc-0 입니다

지, c_sun= 1 예 19 세기.

이 함수를 호출한 후에도 원시 데이터는 그대로 유지됩니다. C _ moon, Year _ moon, Month _ moon 및 Day _ moon 을 읽어 음력의 BCD 데이터를 얻습니다.

*/

무효 변환 (비트 c, uchar 년, uchar 월, uchar 일)

{//c=0 은 2 1 세기, c= 1 은 19 세기입니다. 모든 입력 및 출력 데이터는 BCD 데이터입니다.

Uchar temp 1, temp2, temp3, month _ p;;

Uint temp4, table _ addr

비트 flag2, flag _ y;;

Temp 1 = 년/16; ///BCD-& gt;; Hex 는 먼저 데이터를 16 진수로 변환합니다.

Temp2 = 연도%16;

연도 = temp1*10+temp2;

Temp 1 = 월/16;

Temp 2 = month%16;

월 = temp1*10+temp2;

Temp1= day/16;

Temp2 = day%16;

Day = temp1*10+temp2;

//데이터 테이블 주소 찾기

(c==0) 인 경우

{

Table _ addr = (연도+0x64-1) * 0x3;

}

기타

{

Table _ addr = (연도-1) * 0x3;

}

//데이터 테이블 주소 위치 지정이 완료되었습니다.

//그해 설날이 있는 양력 월을 취하다.

Temp1= year _ code [table _ addr+2] & 0x60

Temp1= _ cror _ (temp1,5);

//그해 설날이 있는 양력 월을 취하여 완성하다.

//그해 설날이 있던 양력의 날을 취하다.

Temp2 = year _ code [table _ addr+2] & 0x1f;

//그해 설날이 있던 양력의 날을 취하다.

//봄부터 섣달 그믐날까지 일수를 계산합니다. 설날은 양력 65438+ 10 월 또는 2 월에만 있습니다.

If(temp 1==0x 1)

{

Temp3 = temp2-1;

}

기타

{

Temp 3 = temp 2+0x1f-1;

}

//봄부터 섣달 그믐날까지 일수를 계산합니다.

//양력일에서 그해 설날까지의 일수를 계산하고 두 개의 표로 계산을 줄입니다.

//day_code 1[9], day_code2[3]

//양력 월이 9 월 또는 9 월 이전인 경우 일수는 0xff 미만이고 day_code 1[9] 표가 사용됩니다.

//9 월 이후 일수가 0xff 보다 크면 day_code2[3] 표를 사용합니다.

//양력일을 8 월 10 으로 입력하면 양력일부터 설날까지의 일수는 day _ code1[8-1]+/kloc-0 입니다

/10 월 양력일이 1 10 인 경우 양력일에서 설날까지의 일수는 day _ code2 [1/kloc 입니다

다음 경우 (월< 10)

{

Temp4 = day _ code1[month-1]+day-1;

}

기타

{

Temp4 = day _ code2 [month-10]+day-1;

}

((월 & gt0x 2)& amp;; 인 경우 & amp (연도 %0x4==0))

{//양력 월이 2 월보다 크고 그해 2 월이 윤월인 경우 일수는 1 만큼 증가합니다.

Temp4+=1;

}

//그해 양력일부터 설날까지의 일수를 계산합니다.

//양력의 날이 설 전후인지 판단하다.

If(temp 4>;; = 온도 3)

{//양력 설날 이후 하루 또는 설날 당일, 다음 코드를 사용하여 운영한다.

Temp4-= temp3;

월 = 0x1;

Month _ p = 0x1; //month_p 는 월을, 달력 일은 설날 전이나 month_p 는 달을 가리킨다.

Flag2=get_moon_day(month_p, table _ addr);

//음력 월이 큰지 작은지 확인하십시오. 큰 달에는 1 을, 작은 달에는 0 을 반환합니다.

Flag _ y = 0;;

If (flag2 = = 0) temp1= 0x1d; //낙태 29 일

Else temp1= 0x1e; //크기 30 일

Temp2 = year _ code [table _ addr] amp; 0xf0

Temp2 = _ cror _ (temp2,4); //데이터시트에서 1 년의 윤월을 꺼내다. 0 이면 1 년 동안 윤월이 없습니다.

While (temp4 > =temp 1)

{

Temp 4-= temp1;

Month _ p+=1;

If(month==temp2)

{

Flag _ y = ~ flag _ y

If(flag_y==0)

월+=1;

}

Else month+=1;

Flag2=get_moon_day(month_p, table _ addr);

If (flag2 = = 0) temp1= 0x1d;

Else temp1= 0x1e;

}

Day = temp4+1;

}

기타

설 전날 다음 코드를 사용하여 운영합니다.

Temp3-= temp4;

If (연도 ==0x0)

{

연도 = 0x63c =1;

}

Else year-=1;

Table _ addr-= 0x3;

월 = 0xc

Temp2 = year _ code [table _ addr] amp; 0xf0

Temp2 = _ cror _ (temp2,4);

다음 경우 (온도 2==0)

Month _ p = 0xc

기타

Month _ p = 0xd//

/*month_p 는 월을 의미합니다. 그 해에 윤월이 있다면, 1 년에 13 개월이 있고, 월은 13 을 가리키고, 윤월은 12*/

Flag _ y = 0;;

Flag2=get_moon_day(month_p, table _ addr);

If (flag2 = = 0) temp1= 0x1d;

Else temp1= 0x1e;

While (temp3 > Temp 1)

{

Temp 3-= temp1;

Month _ p-=1;

If (flag _ y = = 0) month-=1;

If (month = = temp2) flag _ y = ~ flag _ y;

Flag2=get_moon_day(month_p, table _ addr);

If (flag2 = = 0) temp1= 0x1d;

Else temp1= 0x1e;

}

Day = temp1-temp3+1;

}

C _ moon = c// 16 진수-> BCD, 연산 후 데이터를 BCD 데이터로 변환합니다.

Temp 1 = 년/10;

Temp1= _ crol _ (temp1,4);

Temp2 = 연도%10;

Year _ moon = temp1| temp2;

Temp 1 = 월/10;

Temp1= _ crol _ (temp1,4);

Temp2 = month%10;

Month _ moon = temp1| temp2;

Temp1= day/10;

Temp1= _ crol _ (temp1,4);

Temp2 = day%10;

Day _ moon = temp1| temp2;

}

/* 함수: BCD 양력 데이터를 입력하고 BCD 요일 데이터를 출력합니다 (190 1-2099 만 허용).

호출 함수 예: conver _ week (c _ sun, year _ sun, month _ sun, day _ sun)

예를 들어 2004 년 6 월 16 일 환산 계산 (0,0x4,0x10,0x16);

C_sun, Year _ Sun, Month _ Sun, Day _ Sun 은 BCD 데이터, C _ Sun 은 세기 마크, c_sun=0 은 2/kloc-0 입니다

지, c_sun= 1 예 19 세기.

이 함수를 호출한 후 원시 데이터는 변경되지 않고 주를 읽어 음력 BCD 데이터를 얻습니다.

*/

Code uchartable _ week [1 2] = {0,3,3,6,1,4,6,2,5, //월별 수정 데이터 시트

/*

알고리즘: 날짜+연도+윤년 수+양수의 합계를 7 로 나누면 주입니다

윤년은 3 월보다 작으며, 위의 합은 하루를 빼고 7 로 나누어야 한다.

주 수는 0 입니다

*/

Void Conver_week (c, uchar 년, uchar 월, uchar 일)

{//c=0 은 2 1 세기, c= 1 은 19 세기입니다. 모든 입력 및 출력 데이터는 BCD 데이터입니다.

Uchar temp 1, temp2

Temp 1 = 년/16; ///BCD-& gt;; Hex 는 먼저 데이터를 16 진수로 변환합니다.

Temp2 = 연도%16;

연도 = temp1*10+temp2;

Temp 1 = 월/16;

Temp 2 = month%16;

월 = temp1*10+temp2;

Temp1= day/16;

Temp2 = day%16;

Day = temp1*10+temp2;

If (c = = 0) {연도+= 0x64; }//2 1 세기인 경우 연 수에 100 을 추가합니다.

Temp1= 연도/0x4; //지나가는 윤년 수는 1900 이후입니다.

Temp2 = 연도+temp1;

Temp2 = temp2% 0x7; //자원을 절약하기 위해 먼저 나머지를 한 번 진행하고 0xff 보다 큰 수를 피하고 정수 데이터를 사용하지 마십시오.

Temp2 = temp2+day+table _ week [month-1];

If (연도% 0x4 = = 0 & amp& amp 월<3) temp2-=1;

Week = temp 2% 0x7;

}

//테스트

Uchar c_sun, year_sun, month_sun, day _ sun

Void main ()

{

C _ sun =1;

연도 _ sun = 0x2

Month _ sun = 0x11;

Day _ sun = 0x3

Conver_week(c_sun, year_sun, month_sun, day _ sun);

변환 (c_sun, year_sun, month_sun, day _ sun);

While (1);

}