C & C++/C언어 예제 및 소스
년도와 일수 입력받아 날짜 계산하기
언휴
2023. 12. 24. 09:40
유튜브 동영상 강의
알고리즘
날짜 계산(년도, 일수)
월별 일수:={ 31,28,31,30,31,30,31,31,30,31,30,31};
조건(year is 윤년)
2월 달 일수:=29
반복(일수>월별일수[달])
일수:= 일수 – 월별일수[달]
날짜 출력
소스코드
//[언제나 C언어] 년도와 일수 입력받아 날짜 계산하기 [예제 Center]
#include <stdio.h>
void date(int year, int day);//년도와 일수를 입력하면 년월일 출력
int main(void)
{
int year, day;
printf("년도와 일수 입력(예:2016 102): ");
scanf_s("%d %d", &year, &day);
date(year, day); //year와 day를 입력인자로 전달하여 일 수를 출력
return 0;
}
void date(int year, int day)
{
int mdays[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int month;
int mday = day;//mday를 day로 설정
if ((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0)))//윤년 판단
{
mdays[1] = 29;//2월달의 날 수를 29로 설정
}
for (month = 0; mday>mdays[month]; month++)//mday가 mdays[month]보다 크면
{
mday -= mdays[month];//mday에 mdays[month]를 빼줍니다.
}
//month는 mdays의 인덱스로 사용해서 실제 출력할 때는 1을더해서 출력합니다.
printf("%d년도의 %d번째 날은 %d월 %d일입니다.\n", year, day, month + 1, mday);
}