首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#日期成了0001-1-1解决方案

2012-02-25 
C#日期成了0001-1-1usingSystemusingSystem.Collections.GenericusingSystem.TextusingSystem.Windows.

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的默认值

热点排行