재우니의 블로그

 

현재 날짜와 생년월일이 주어졌을 때 현재 나이를 구합니다. 

 

 

두 날짜의 차이를 계산하는 동안 수행할 두 가지 조건만 추적하면 됩니다. 

  • 현재 날짜가 생년월일보다 작으면 해당 월은 계산되지 않으며 날짜를 뺄 경우 날짜의 차이를 얻기 위해 현재 날짜에 월 일 수를 더합니다.
  • 현재 월이 출생 월보다 작으면 올해가 완료되지 않았으므로 현재 연도를 계산하지 않으며 월 차이를 구하려면 현재 월에 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/

 

Online C# Compiler (Editor)

 

www.programiz.com