C언어, 요일계산과 입력한 달의 달력출력 프로그램 완성소스입니다..
세이
#include stdio.h
int month_total[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int get_week(int , int , int );
void Calendar(int ,int ,int );
void main() {
char *week_total[] ={일,월,화,수,목,금,토};
int year = 0, month = 0, day = 0 ,get;
printf(\n);
printf(*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n);
printf( 년,월,일을 입력하면 요일 출력 프로그램 \n);
printf( 입력한 날의 달력을 출력하는 프로그램 \n);
printf(*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n);
printf(\n);
printf(요일을 원하는 날짜를 입력해 주세요 !! 예)2009 11 03\n);
printf(\n);
printf(\t\t);
scanf(%d %d %d,&year,&month,&day);
get = get_week(year, month, day);
printf(\n);
printf( *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* \n);
printf( %d년 %d월 %d일 → %s요일 입니다 \n,year,month,day,week_total[get]);
printf( *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* \n);
printf(\n);
printf(\n);
printf( *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* \n);
printf( %d년 %d월 의 달력입니다. \n,year,month,week_total[get]);
printf( *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* \n);
Calendar(year,month,day);
printf(\n);
printf(\n);}
int get_week(int year, int month, int day)
{
int day_total=0,month_total_01=0,day_total_01, temp;
int i;
if((year%4)==0 && ((year%100)!=0 || (year%400)==0))
{
month_total[2] = 29;
}
day_total =(year-1)/4-(year-1)/100+(year-1)/400;
day_total_01 = (year-1)*365 + day + day_total;
for(i=0;imonth;i++)
{
day_total_01 += month_total[i];
}
temp = day_total_01 % 7;return temp;
}
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
void Calendar(int year,int month,int day)
{
int month_daty_01[]={31,28,31,30,31,30,31,31,30,31,30,31};
int month_daty_02[]={0,31,28,31,30,31,30,31,31,30,31,30};
int gesan;
int date=0,total_day;
int i,count=0;
if(month==2 && year%100!=0 && year%4==0)
{
month_daty_01[month-1]=month_daty_01[month01[month-1]+1; // 29
}
if(month==2 && year%400==0)
{
month_daty_01[month-1]=month_daty_01[month-1]+1; // 29
}
total_day=(year-1)/4-(year-1)/100+(year-1)/400;
date=(year-1)*365+total_day;
for(i=0;imonth;i++)
{
date=date+month_daty_02[i];
}
printf(일\t월\t화\t수\t목\t금\t토\n);
gesan=date%7+1;
if(gesan==7)
{
gesan=0;
}
for(i=0;igesan;i++)
{
printf( \t);
count++;
}
for(i=1;i=month_daty_01[month-1];i++)
{
if(count!=0&&count%7==0)
{
printf(\n);
}
count++;
printf(%d\t,i);
}
printf(\n);
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
}
이번 수업시간에 만들어본 사용자가 입력한 날짜, 즉 2009 11 03 을 입력하면
화요일 이라는 결과와 11월달에 대한 달력이 나오는 소스입니다.
요일을 계산하는 함수부분은 제가 직접했지만
달력이 나오는 (-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*) 이 부분은 친구의 소스를 빌려서 만들어봤습니다.
이해가 안되는 부분이 많아서 그런데
저 부분만 위에서부터 주석좀 해주시면 감사합니다..
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2694258 | 카운터.. 질문입니다. (4) | 하늘빛눈망울 | 2025-05-09 |
2694229 | 단순한 질문이요 (8) | 여름 | 2025-05-09 |
2694202 | 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) | 미나 | 2025-05-09 |
2694145 | 화면깜빡임을 없애고 싶은데요... (1) | 어서와 | 2025-05-08 |
2694069 | unsigned 질문입니다. | 힘차 | 2025-05-07 |
2694012 | 전공 비전공자 개발자 (10) | 말글 | 2025-05-07 |
2693984 | 오버로딩이 무엇인가요? (2) | 헛매질 | 2025-05-07 |
2693956 | PlaySound재생이 안됩니다!(C에 음악넣기) | 지존 | 2025-05-06 |
2693928 | &와 *의 사용에 관한 명확한 이해 | 제나 | 2025-05-06 |
2693903 | 반복문 설명좀요 ㅠㅠ (2) | 란새 | 2025-05-06 |
2693869 | stdio.h 는 왜 쓰는건가요? (1) | 큰꽃들 | 2025-05-06 |
2693842 | 포인터 변수의 주소값끼리 더하는 것에 대해서 질문드립니다. (1) | 진솔 | 2025-05-05 |
2693811 | 소수 출력;;;; | 화이트캣 | 2025-05-05 |
2693788 | 이런 함수는 없나요? (3) | 앤드류 | 2025-05-05 |
2693758 | txt파일 불러와서 행렬로 저장 | 큰애 | 2025-05-05 |
2693727 | scanf 오류 문제!! (2) | 큰나래 | 2025-05-04 |
2693704 | 구조체 주소록 문제인데 도와주세요 (2) | 도1도캣 | 2025-05-04 |
2693676 | 열혈강의 c언어 질문입니다 | 하양이 | 2025-05-04 |
2693647 | 12.620000 을요 12.620 으로 어떻게 표현해요? (2) | 파도 | 2025-05-04 |
2693619 | 타이틀 코드.. | 단순드립 | 2025-05-03 |