C#日期成了0001-1-1
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
namespace Property
{
class Program
{
static void Main(string[] args)
{
User us = new User();
us.Name= "张三 ";
us.Sex= "提 ";
us.BrithDay = Convert.ToDateTime( "1980-01-01 ");
Console.WriteLine(us.BrithDay);
Console.WriteLine( "姓名: " + us.Name+ " 性别: " + us.Sex+ " 年龄 "+us.Age);
}
}
class User
{
private string m_Name;
private string m_Sex;
private DateTime m_BrithDay;
public DateTime BrithDay
{
set
{
if (value < Convert.ToDateTime( "1900-1-1 ") || value.Year > DateTime.Now.Year - 3)
{
MessageBox.Show( "用户年龄非法 ");
}
}
get
{
return m_BrithDay;
}
}
public string Name
{
get{ return m_Name; }
set{ m_Name = value; }
}
public string Sex
{
get { return m_Sex; }
set
{
if (value == "男 " || value == "女 ")
m_Sex = value;
else
Console.WriteLine( "性别只能为 '男 '或 '女 ' ");
}
}
public int Age
{
get
{
Console.Write(DateTime.Now.Year + " ");
Console.Write(m_BrithDay.Year);
return DateTime.Now.Year - m_BrithDay.Year;
}
}
}
}
us.BrithDay = Convert.ToDateTime( "1980-01-01 ");这里的us.BrithDay日期为什么成了0001-1-1,导致输出年龄是2006为什么会这样
[解决办法]
set
{
if (value < Convert.ToDateTime( "1900-1-1 ") || value.Year > DateTime.Now.Year - 3)
{
MessageBox.Show( "用户年龄非法 ");
}
}
这里少了 m_BrithDay = value; 0001-1-1是DateTime的默认值