프로그래밍
[C언어] 달력 만들때 윤년 찾는 함수 부분
버블껌
2007. 11. 21. 11:02
2004년12월 20일에 내 싸이 게시판에 썼던 내용...
//티스토리에서 탭이 자꾸 스페이스 4번으로 바껴서 첨부파일로도 올림(본문과 같은 내용)
알바하다가 에소스 세미나 숙제 할까 했더니...
비쥬얼 스튜디오가 없어서...
그냥 여기다.ㅋㅋ
============================ 1번째 ========================
/***********************************************************
4로 나누어서 떨어지는 해는 윤년입니다.예를 들면 2004년 2008년.
100으로 나누어서 떨어지는 해는 윤년이 아닙니다. 2100년 2200년.
400으로 나누어서 떨어지는 해는 윤년입니다.2000년 2400년.
***********************************************************/
// 윤년이 아니면 0을 리턴, 윤년일 경우 1을 리턴...
if( (gumy % 4) == 0 ) //gumy 는 연도...함수에서 넘겨 받을 값...
{ //4로 나누어 떨어지면 윤년...
if( (gumy % 100) == 0 ) //100으로 나누어 떨어지면 윤년아님
{
if( ( gumy % 400) == 0)
{ //100으로 나누어 떨어지고 400으로 나누어 떨어지면 윤년
return 1;
}
else
{ //100으로 나누어 떨어지고 400으로 안 나눠지면 윤년아님
return 0;
}
}
else
{ //4로 나누어지고 100으로 안나눠지면 윤년
return 1;
}
}
else
{ // 4로 안나누어 떨어지면 윤년아님
return 0;
}
/*
너무 복잡한가?
*/
============================ 2번째 ========================
/***********************************************************
4로 나누어서 떨어지는 해는 윤년입니다.예를 들면 2004년 2008년.
100으로 나누어서 떨어지는 해는 윤년이 아닙니다. 2100년 2200년.
400으로 나누어서 떨어지는 해는 윤년입니다.2000년 2400년.
***********************************************************/
// 윤년이 아니면 0을 리턴, 윤년일 경우 1을 리턴...
if( ( gumy % 4 ) == 0 ) //gumy 는 연도...함수에서 넘겨 받을 값...
{ //4로 나누어 떨어지면 윤년...
if( ( (gumy % 100) == 0 ) != ( ( gumy % 400) == 0 ) )
{ // 100으로 나누어 떨어지면서
// 400으로 나누어 떨어지지 않으면 윤년 아님...
return 0;
}
else //100으로 나누어 떨어지지 않거나
{ //4로 나누어지고, 400으로 나누어지면 윤년
return 1;
}
}
else // 4로 나누어 떨어지지 않으면 윤년아님
{
return 0;
}
/*
뭐... 좀 간단해지기는 했나...ㅡㅡ;;
*/
==========================================================
여기 까지는 예전에 만들었던 내용이고...
3번째 부터는 2006년09월19일에 만든 것...
============================ 3번째 ========================
/***********************************************************
4로 나누어서 떨어지는 해는 윤년입니다.예를 들면 2004년 2008년.
100으로 나누어서 떨어지는 해는 윤년이 아닙니다. 2100년 2200년.
400으로 나누어서 떨어지는 해는 윤년입니다.2000년 2400년.
***********************************************************/
// 윤년이 아니면 0을 리턴, 윤년일 경우 1을 리턴...
if( ( gumy % 100 ) == 0 ) //gumy 는 연도...함수에서 넘겨 받을 값
{ //100으로 나누어 떨어지면 윤년아님
if( ( gumy % 400 ) == 0) //400으로도 나누어 떨어지면 윤년
{
return 1;
}
else // 100으로만 나누어 떨어지면 윤년아님
{
return 0;
}
}
else // 100으로 나누어 떨어지지 않은 경우
{
if( ( gumy % 4 ) == 0 ) // 4로 나누어 떨어지면 윤년
{
return 1;
}
else //4로 나누어 떨어지지 않으면 윤년아님
{
return 0;
}
}
/*
2번째보다 길기는 하지만 이해하기는 좀더 편해졌음...
*/
==========================================================
뭐...예전에도 찾기는 했었지만...
네이버 지식인에는 이프문 하나로 만든것도 있더군...
if( !( gumy % 4 ) && ( gumy % 100 ) || !( gumy % 400 ) )
{
return 1;
}
else
{
return 0;
}
==========================================================
이렇게까지 줄일수가 있다니!!!
하지만 위에것을 수정해서 한줄로도 줄일수도 있다.
==========================================================
( !( gumy % 4 ) && ( gumy % 100 ) || !( gumy % 400 ) ) ? return 1 : return 0 ;
==========================================================
//티스토리에서 탭이 자꾸 스페이스 4번으로 바껴서 첨부파일로도 올림(본문과 같은 내용)
알바하다가 에소스 세미나 숙제 할까 했더니...
비쥬얼 스튜디오가 없어서...
그냥 여기다.ㅋㅋ
============================ 1번째 ========================
/***********************************************************
4로 나누어서 떨어지는 해는 윤년입니다.예를 들면 2004년 2008년.
100으로 나누어서 떨어지는 해는 윤년이 아닙니다. 2100년 2200년.
400으로 나누어서 떨어지는 해는 윤년입니다.2000년 2400년.
***********************************************************/
// 윤년이 아니면 0을 리턴, 윤년일 경우 1을 리턴...
if( (gumy % 4) == 0 ) //gumy 는 연도...함수에서 넘겨 받을 값...
{ //4로 나누어 떨어지면 윤년...
if( (gumy % 100) == 0 ) //100으로 나누어 떨어지면 윤년아님
{
if( ( gumy % 400) == 0)
{ //100으로 나누어 떨어지고 400으로 나누어 떨어지면 윤년
return 1;
}
else
{ //100으로 나누어 떨어지고 400으로 안 나눠지면 윤년아님
return 0;
}
}
else
{ //4로 나누어지고 100으로 안나눠지면 윤년
return 1;
}
}
else
{ // 4로 안나누어 떨어지면 윤년아님
return 0;
}
/*
너무 복잡한가?
*/
============================ 2번째 ========================
/***********************************************************
4로 나누어서 떨어지는 해는 윤년입니다.예를 들면 2004년 2008년.
100으로 나누어서 떨어지는 해는 윤년이 아닙니다. 2100년 2200년.
400으로 나누어서 떨어지는 해는 윤년입니다.2000년 2400년.
***********************************************************/
// 윤년이 아니면 0을 리턴, 윤년일 경우 1을 리턴...
if( ( gumy % 4 ) == 0 ) //gumy 는 연도...함수에서 넘겨 받을 값...
{ //4로 나누어 떨어지면 윤년...
if( ( (gumy % 100) == 0 ) != ( ( gumy % 400) == 0 ) )
{ // 100으로 나누어 떨어지면서
// 400으로 나누어 떨어지지 않으면 윤년 아님...
return 0;
}
else //100으로 나누어 떨어지지 않거나
{ //4로 나누어지고, 400으로 나누어지면 윤년
return 1;
}
}
else // 4로 나누어 떨어지지 않으면 윤년아님
{
return 0;
}
/*
뭐... 좀 간단해지기는 했나...ㅡㅡ;;
*/
==========================================================
여기 까지는 예전에 만들었던 내용이고...
3번째 부터는 2006년09월19일에 만든 것...
============================ 3번째 ========================
/***********************************************************
4로 나누어서 떨어지는 해는 윤년입니다.예를 들면 2004년 2008년.
100으로 나누어서 떨어지는 해는 윤년이 아닙니다. 2100년 2200년.
400으로 나누어서 떨어지는 해는 윤년입니다.2000년 2400년.
***********************************************************/
// 윤년이 아니면 0을 리턴, 윤년일 경우 1을 리턴...
if( ( gumy % 100 ) == 0 ) //gumy 는 연도...함수에서 넘겨 받을 값
{ //100으로 나누어 떨어지면 윤년아님
if( ( gumy % 400 ) == 0) //400으로도 나누어 떨어지면 윤년
{
return 1;
}
else // 100으로만 나누어 떨어지면 윤년아님
{
return 0;
}
}
else // 100으로 나누어 떨어지지 않은 경우
{
if( ( gumy % 4 ) == 0 ) // 4로 나누어 떨어지면 윤년
{
return 1;
}
else //4로 나누어 떨어지지 않으면 윤년아님
{
return 0;
}
}
/*
2번째보다 길기는 하지만 이해하기는 좀더 편해졌음...
*/
==========================================================
뭐...예전에도 찾기는 했었지만...
네이버 지식인에는 이프문 하나로 만든것도 있더군...
if( !( gumy % 4 ) && ( gumy % 100 ) || !( gumy % 400 ) )
{
return 1;
}
else
{
return 0;
}
==========================================================
이렇게까지 줄일수가 있다니!!!
하지만 위에것을 수정해서 한줄로도 줄일수도 있다.
==========================================================
( !( gumy % 4 ) && ( gumy % 100 ) || !( gumy % 400 ) ) ? return 1 : return 0 ;
==========================================================