C/C++ 언어 1900년 1월 1일부터 지난 일수 구하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | /*************************************************************************************** 입력: 년 월 일 출력:날짜수 1900년 1월 1일부터 1905년 5월 4일까지.. 날짜가 얼마나 지났는지 년월일을 입력하면 날짜수가 나오는겁니다. 윤년 4년에 한번. 100으로나누면 평년 400으로 나누면 윤년.. 윤년인 달은 2월달이 29일 평년인 달은 2월달이 28일 ***************************************************************************************/ #include <stdio.h> int main(void) { int year, month, day; // 입력 받기 위한 변수 년,월,일 int sumday = 0; // 출력할 날짜 초기화 int i; // 반복문을 위한 변수 printf("년 월 일 : "); scanf("%d%d%d",&year,&month,&day); for(i = 1900; i < year; i++) { // 1900년 부터 입력 받은 년까지 // " < " 은 이유는 " 년 "까지만 계간 할것이므로 // ex> 1900년 1월 1일 부터 2월 2일 까지라면 for문은 돌면 안됨 if(i % 4 == 0) { // 윤년을 계산 하기위함 if(i % 100 == 0) { // 100으로 나누면 평년 if(i % 400 == 0) { // 400으로 나누면 윤년 sumday = sumday + 366; continue; } sumday = sumday + 365; continue; } sumday = sumday + 366; continue; } sumday = sumday + 365; } for(i = 1; i < month;i++) { // 1월 부터 입력 받은 월까지 " < " 이유는 위와 동일 if(i == 4 || i == 6 || i == 9 || i == 11) { // 30일인 달 sumday = sumday + 30; } else if(i == 2) { if(i % 4 == 0) { // 윤년을 계산 하기위함 if(i % 100 == 0) { // 100으로 나누면 평년 if(i % 400 == 0) { // 400으로 나누면 윤년 sumday = sumday + 29; continue; } sumday = sumday + 28; continue; } sumday = sumday + 29; continue; } sumday = sumday + 28; } else sumday = sumday + 31; // 31일인 달 } sumday = sumday + (day - 1); // 0일은 없기 때문에 printf("%d일\n",sumday); return 0; } | cs |
C/C++ 언어 1900년 1월 1일부터 지난 일수 구하기
'C,C++ > 예제' 카테고리의 다른 글
| C/C++ 언어 rand() 함수를 이용한 예제 프로그램 (0) | 2016.05.20 |
|---|---|
| C/C++ 언어 시간 처리 함수 예제 프로그램 (0) | 2016.05.20 |
| C/C++ 언어 10개의 입력 값의 최고, 최저, 총점, 평균 구하기 예제 프로그램 (0) | 2016.03.15 |
| C/C++ 언어 모래시계 모양 출력 예제 프로그램 (0) | 2016.03.15 |
| C/C++ 언어 문자열에서 문자 찾기 예제 프로그램 (0) | 2016.03.15 |