기금넷 공식사이트 - 복권 조회 - 안녕하세요, 이 프로그램의 차트를 주시겠습니까? 감사합니다
안녕하세요, 이 프로그램의 차트를 주시겠습니까? 감사합니다
# 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);
}