在datetimepicker之间操作

时间:2014-02-17 16:37:40

标签: c# datetimepicker operations

我正在尝试区分两个datetimepickers。

例如: 在X日期和Y日期之间,已经过了X天,Y个月和Z年。

所以,如果我在第一个datetimepicker中输入我的出生日期,并且在今天的第二天,我会确切地说我的年龄,例如:“20天,3个月和26年”。

我尝试了几个代码,但结果不正确。

提前致谢。

代码是:

string age = "Tu age es de:\n";
age = age + ((Math.Abs(DateTime.Today.Day - dtpage.Value.Day)).ToString()) + " days, ";
age = age + ((Math.Abs(DateTime.Today.Month - dtpage.Value.Month)).ToString()) + " months";
age = age + " y " + ((Math.Abs(DateTime.Today.Year - dtpage.Value.Year)).ToString()) + " years";
MessageBox.Show(age);

编辑:解决C# calculate accurate age

4 个答案:

答案 0 :(得分:0)

如果此答案不充分,请显示代码,但如果您正在谈论DateTime个对象,请使用Subtract方法。

答案 1 :(得分:0)

试试这个:

DateTime birthdayDate = DateTime.Now; //get the date from datetimepicker
var dateTimeResult = DateTime.Now.Subtract(birthdayDate);

答案 2 :(得分:0)

我认为Datediff将实现这一目标。

编辑 - 这里:

string diff = DateAndTime.DateDiff(DateInterval.Second, DateTimePicker1.Value, DateTimePicker2.Value);
Interaction.MsgBox(diff);

现在只需格式化秒数。

答案 3 :(得分:0)

我认为您可能需要编写几行代码,如果查看您的类,这不是太难。这是一个简单的例子,你可能需要检查一个负月值,如果是这样,就加12,因为你将携带一年。

        DateTime d = DateTime.Now;
        DateTime d2 = DateTime.Now.AddMinutes(-28938923);

        int years = d.Year - d2.Year;
        int months = d.Month - d2.Month;
        int days = d.Day - d2.Day;

        if (days < 0)
        { 
            // borrow a month
            months--;
            // use your brain power to pick the correct month.  I have not thought this step out.
            days += DateTime.DaysInMonth(d.Month);  
        }
        if (months < 0)
        { 
            // borrow a year
            years--;
            months += 12;
        }