我正在尝试区分两个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);
答案 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;
}