■ DateTime 구조체를 사용해 나이를 구하는 방법을 보여준다.
▶ DateTime 구조체 : 나이 구하기 예제 (C#)
1 2 3 4 5 6 7 |
using System; Age age = GetAge(new DateTime(2000, 1, 1), DateTime.Now.Date); Console.WriteLine(string.Format("{0}년 {1}개월", age.Year, age.Month)); |
▶ DateTime 구조체 : 나이 구하기 (C#)
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 71 72 73 74 75 76 77 78 79 80 81 |
using System; /// <summary> /// 나이 /// </summary> public struct Age { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region 년 - Year /// <summary> /// 년 /// </summary> public int Year { get; set; } #endregion #region 개월 - Month /// <summary> /// 개월 /// </summary> public int Month { get; set; } #endregion } #region 월 수 구하기 - GetMonthCount(startDate, endDate) /// <summary> /// 월 수 구하기 /// </summary> /// <param name="startDate">시작일</param> /// <param name="endDate">종료일</param> /// <returns>월 수</returns> public int GetMonthCount(DateTime startDate, DateTime endDate) { int difference = 0; DateTime temporaryDate = startDate; while(true) { temporaryDate = temporaryDate.AddMonths(1); if(temporaryDate > endDate) { return difference; } difference++; } } #endregion #region 나이 구하기 - GetAge(birthday, currentDate) /// <summary> /// 나이 구하기 /// </summary> /// <param name="birthday">생일</param> /// <param name="currentDate">현재일</param> /// <returns>나이</returns> public Age GetAge(DateTime birthday, DateTime currentDate) { int yearCount = Convert.ToInt32(Math.Round(GetMonthCount(birthday, currentDate) / 12d)); int monthCount = GetMonthCount(birthday, currentDate) % 12; Age age = new Age(); age.Year = yearCount; age.Month = monthCount; return age; } #endregion |