U E D R , A S I H C RSS

OOP/2012년스터디 (rev. 1.3)

OOP/2012년스터디

1월 10일

고한종

김태진

//
//  main.cpp
//  Calender
//
//  Created by 김 태진 on 12. 1. 10..
//  Copyright (c) 2012년 __MyCompanyName__. All rights reserved.
//

#include <stdio.h>

int isLeapYr(int yr);
int isThirtyOne(int mth);

int main()
{
	int month,day=1,myYear,date=1,monthEndDate;
	int i;
	int Max;
	
	scanf("%d",&myYear);
	
	if(isLeapYr(myYear)==1){
		Max=366;
	}else{
		Max=365;
	}
	
	for(i=1;i<myYear;i++){
		if(isLeapYr(i-1)==1&&i!=1){
			day+=2;
		}else{
			day++;
		}
		//day 0 == 일
	}
	day%=7;
	
	for(month=1;month<=12;month++){
		date=1;
		if(isThirtyOne(month)==1){
			monthEndDate=31;
		}else{
			monthEndDate=30;
			if(month==2){
				monthEndDate=28;
				if(isLeapYr(myYear)==1){
					monthEndDate=29;
				}
			}
		}
		printf("\n%d월\n",month);//몇월
		printf("일\t월\t화\t수\t목\t금\t토\n");
		for(i=0;i<day;i++){
			printf("\t");
		}
		for(;date<=monthEndDate;date++){
			printf("%d\t",date);
			if(i%7==6){
				printf("\n");
			}
			i++;
		}
		day=i%7;
	}

	
	
	return 0;
}

int isLeapYr(int yr){
	
	int flag=0;
	
	if(yr%4==0){
		flag=1;//1이면 윤년
		if(yr%100==0){
			flag=0;
			if(yr%400==0){
				flag=1;
			}
		}
	}
	return flag;
}
int isThirtyOne(int mth){
	if(mth==1||mth==3||mth==5||mth==7||mth==8||mth==10||mth==12){
		return 1;
	}else{
		return 0;
	}
}

이민규


#include <stdio.h>
//#include "CalLib.h"

int Calculate_Days(int year){
year--;
return (year*365)+(year/4)-(year/100)+(year/400);
}

void PrintCal(int 년도,int 시작요일, bool 윤년){
int 월시작요일= 시작요일;
for(int 달=1; 달<13; 달++){
printf("%d년 %d월\n", 년도, 달);
printf("월\t화\t수\t목\t금\t토\t일\n");
for(int i=0; i<월시작요일; i++) printf("\t");
for(int 날짜=1; ; 날짜++){
printf("%d\t", 날짜);
if((날짜+월시작요일)%7 ==0) printf("\n");
if((달== 1)||(달==3)||(달==5)||(달==7)||(달==8)||(달==10)||(달==12)){
if(날짜== 31){
printf("\n");
월시작요일= (월시작요일+날짜)%7;
break;
}
}
else if(달== 2){
if(윤년== true){
if(날짜== 29){
printf("\n");
월시작요일= (월시작요일+날짜)%7;
break;
}
}
else
if(날짜== 28){
printf("\n");
월시작요일= (월시작요일+날짜)%7;
break;
}
}
else
if(날짜== 30){
printf("\n");
월시작요일= (월시작요일+날짜)%7;
break;
}
}
}
}


void main(){
int 년도;
bool 윤년= false;
scanf("%d", &년도);
int 지난날수= Calculate_Days(년도);

int 시작요일=지난날수%7;
if((년도%4== 0)&& (년도%100!= 0))
윤년= true;

PrintCal(년도, 시작요일, 윤년);
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:53
Processing time 0.0199 sec