C#如何制作年龄计算器?

问题描述 投票:0回答:2

我制作了一个非常简单(不准确)的程序来计算您的年龄。我想通过计算leap年并考虑到每个月都有不同的天数来使其准确。任何帮助如何做以及从哪里开始?谢谢!

using System;

public class Program
{
    public static void Main()
    {
        float currentDay = 22;
        float currentMonth = 2;
        float currentYear = 2020;

        Console.WriteLine("Enter your date of birth: (eg: 13/04/1998)");
        Console.Write("Day: ");
        int dayNum = Convert.ToInt16(Console.ReadLine());
        Console.Write("Month: ");
        int monthNum = Convert.ToInt16(Console.ReadLine());
        Console.Write("Year: ");
        int yearNum = Convert.ToInt16(Console.ReadLine());

        float birthDay = (currentDay - dayNum) / 365;
        float birthMonth = (currentMonth - monthNum) / 12;
        float birthYear = currentYear - yearNum;

        float age = birthYear + birthMonth + birthDay;

        Console.WriteLine("Your age is: " + age);



    }
}
c# windows console console-application windows-console
2个回答
0
投票

以防万一,这对您有用。

int returnAge = new DateTime(DateTime.Now.Subtract(DateTimeValue).Ticks).Year-1;

0
投票

我的建议是给您类似以下内容:

public static string ToAgeString(this DateTime dob)
{
    DateTime today = DateTime.Today;

    int months = today.Month - dob.Month;
    int years = today.Year - dob.Year;

    if (today.Day < dob.Day)
    {
        months--;
    }

    if (months < 0)
    {
        years--;
        months += 12;
    }

    int days = (today - dob.AddMonths((years * 12) + months)).Days;

    return string.Format("{0} year{1}, {2} month{3} and {4} day{5}",
                         years, (years == 1) ? "" : "s",
                         months, (months == 1) ? "" : "s",
                         days, (days == 1) ? "" : "s");
}
© www.soinside.com 2019 - 2024. All rights reserved.