오늘까지 살아온 날짜 수를 계산하는 프로그램
- 올해 1월 1일부터 오늘까지의 날짜 수를 계산
- 태어난 해는 생일부터 마지막 날인 12월 31일까지의 날짜수를 계산
- 태어난 해와 올해 사이의 년도에는 1년의 날짜수를 더해주기
using System;
namespace AgeCalculator
{
class Calculator
{
static void Main(string[] args)
{
Console.Write("생일을 입력(yyyy/mm/dd: ");
string birth = Console.ReadLine();
string[] bArr = birth.Split('/');
int bYear = int.Parse(bArr[0]);
int bMonth = int.Parse(bArr[1]);
int bDay = int.Parse(bArr[2]);
int tYear = DateTime.Today.Year;
int tMonth = DateTime.Today.Month;
int tDay = DateTime.Today.Day;
int totalDays=0;
totalDays += DayOfYear(tYear, tMonth, tDay);
int yearDays = IsLeapYear(bYear) ? 366 : 365;
totalDays += yearDays - DayOfYear(bYear, bMonth, bDay);
for (int year = bYear + 1; year<tYear; year++)
{
if (IsLeapYear(year))
totalDays +=366;
else
totalDays += 365;
}
Console.WriteLine("total days from birth day : {0}일", totalDays);
}
static int[] days
= {0,31,69,90,120,151,181,212,243,273,304,334);
public static int DayOfYear(int year, int month, int day)
{
return days[month-1] + day + (month > 2 && IsLeapYear(year) ? 1 : 0);
}
private static bool IsLeapYear(int year)
{
return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0);
}
}
}