C++ 달력 만드는 것인데 보고 답변좀..
물맑
안녕하세요. C++ 초보자에요 ㅎ
제가 소스를 짜봤는데요 ,, 제가 소스의 5번째 줄에 j를 4로 잡아놔서 2007년 11월 달력은 맞게 뜨는데요
j값을 처음에 지정하지 않고 년도만 입력해서 요일하고 날짜가 딱 맞게 어떻게 수정해야 하나요 ㅠ
조언 좀 부탁드립니다,,
#include stdio.h
int find_days(int, int);
int main(void)
{
int i,j=4,count,days,y,m;
printf(년도와 월을 입력하세요. );
scanf(%d%d, &y, &m);
printf( [%d년 %d월],y,m);
printf(\n 일 월 화 수 목 금 토\n);
for(i=0; ij; i++)
printf( );
count = j;
days = find_days( y,m );
for(i=1; i=days; i++)
{
printf(%5d, i);
count++;
if( count%7 == 0 )
printf(\n);
}
printf(\n);
}
int find_days( int y, int m )
{
switch( m )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return 31;
case 4:
case 6:
case 9:
case 11: return 30;
case 2:
if( y%4==0 && y%100!=0 || y%400==0 )
return 29;
else
return 28;
default:
return -1;
}
}
-
나래
이제 결론적으로 % 로 결과가 1이라면 9월달 마지막 날이 월요일이라는것입니다. 이때도 배열을 사용하셔도 좋을것 같습니다. char* szDayOfWeek[] = { \일\
-
뿌닝
2007년 10월을 입력받았다면, 2007년 9월달까지의 총 일수를 구하실수 있죠. 그럼 그 일수를 modulus(%) 7로하세요(이런것은 #define WEEK_DAY 7 등으로 정의하시고요) 그리고 find_day처럼 case문보다는 int TotalDayByMonth[]={31,28,31...}이런식으로 하시는게 좋을듯하고요, bool IsLeapYear(int Year)함수 만드셔서 윤년인지 확인하는 함수만드시면 윤년일 경우에만 2월달을 29로
-
아이돌
우선 현재 년도까지의 총 일수를 계산해야합니다. 1년1월1일 (월요일) 부터해서 님이 입력하신 년도의 바로 전년도까지 총 일수를 구합니다. (프로그램은 함수로 작성하시면되겟죠.. int GetTotalDayByYear(int year) : 2007년이면 2006년도까지만 총 일수를 계산합니다.) 이제 님이 입력 받은 달에 바로 전달까지만 총 일수를 계산합니다. (int GetTotalDayByMonth(int Month) : 10월이면 9월을 넣으시면되