현재 날짜와 생년월일이 주어졌을 때 현재 나이를 구합니다.
두 날짜의 차이를 계산하는 동안 수행할 두 가지 조건만 추적하면 됩니다.
- 현재 날짜가 생년월일보다 작으면 해당 월은 계산되지 않으며 날짜를 뺄 경우 날짜의 차이를 얻기 위해 현재 날짜에 월 일 수를 더합니다.
- 현재 월이 출생 월보다 작으면 올해가 완료되지 않았으므로 현재 연도를 계산하지 않으며 월 차이를 구하려면 현재 월에 12를 더하여 뺍니다.
- 결국 우리는 두 조건이 처리된 후 차이를 얻기 위해 일, 월, 연도를 빼면 됩니다.
C# 프로그램
using System;
class GFG {
static void findAge(int current_date,
int current_month,
int current_year,
int birth_date,
int birth_month,
int birth_year)
{
int []month = { 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
// 생년월일이 현재 날짜보다 크면 이번 달을 계산하지 않고
// 날짜에 30을 더하여 날짜를 빼고 나머지 날짜를 구합니다.
if (birth_date > current_date)
{
current_month = current_month - 1;
current_date = current_date
+ month[birth_month - 1];
}
// 출생 월이 현재 월을 초과하는 경우 올해를 계산하지 않고
// 해당 월에 12를 더하여 빼서 차이를 찾을 수 있습니다.
if (birth_month > current_month)
{
current_year = current_year - 1;
current_month = current_month + 12;
}
int calculated_date = current_date
- birth_date;
int calculated_month = current_month
- birth_month;
int calculated_year = current_year
- birth_year;
Console.WriteLine("Present Age");
Console.WriteLine("Years: "
+ calculated_year +
" Months: " + calculated_month
+ " Days: " + calculated_date);
}
public static void Main()
{
// 현재 날짜
int current_date = 7;
int current_month = 12;
int current_year = 2017;
// 생일 날짜
int birth_date = 16;
int birth_month = 12;
int birth_year = 2009;
// 나이 계산하기
findAge(current_date, current_month,
current_year, birth_date,
birth_month, birth_year);
}
}
결과 내용
Years: 7 Months: 11 Days: 22
javascript
<script>
function findAge(current_date, current_month, current_year, birth_date,
birth_month, birth_year)
{
// 매월의 마지막 일자 배열에 담기
month = [31, 28, 31, 30, 31, 30, 31,
31, 30, 31, 30, 31 ]
if (birth_date > current_date) {
current_date = current_date + month[birth_month - 1];
current_month = current_month - 1;
}
if (birth_month > current_month) {
current_year = current_year - 1;
current_month = current_month + 12;
}
var calculated_date = current_date - birth_date;
var calculated_month = current_month - birth_month;
var calculated_year = current_year - birth_year;
document.write("Present Age<br>Years: "+(calculated_year)+" ");
document.write("Months: "+calculated_month+" ");
document.write("Days: "+calculated_date+" ");
}
var current_date = 7;
var current_month = 12;
var current_year = 2017;
var birth_date = 16;
var birth_month = 12;
var birth_year = 2009;
findAge(current_date, current_month, current_year,
birth_date, birth_month, birth_year);
</script>
Python
def findAge(current_date, current_month, current_year,
birth_date, birth_month, birth_year):
month =[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (birth_date > current_date):
current_month = current_month - 1
current_date = current_date + month[birth_month-1]
if (birth_month > current_month):
current_year = current_year - 1;
current_month = current_month + 12;
calculated_date = current_date - birth_date;
calculated_month = current_month - birth_month;
calculated_year = current_year - birth_year;
print"Present Age"
print("Years:", calculated_year, "Months:",
calculated_month, "Days:", calculated_date)
current_date = 7
current_month = 12
current_year = 2017
birth_date = 16
birth_month = 12
birth_year = 2009
findAge(current_date, current_month, current_year,
birth_date, birth_month, birth_year)
c# 언어 테스트 사이트
https://www.programiz.com/csharp-programming/online-compiler/