void txtAge_TextChanged(object sender, EventArgs e)
        {
            this.birth.ValueChanged -= new EventHandler(birth_TextChanged);
            //if (sender.Equals(txtYear) == false)
            this.txtYear.TextChanged -= new EventHandler(txtAge_TextChanged);
            //if (sender.Equals(txtMonth) == false)
            this.txtMonth.TextChanged -= new EventHandler(txtAge_TextChanged);
            //if (sender.Equals(txtDay) == false)
            this.txtDay.TextChanged -= new EventHandler(txtAge_TextChanged);
            //if (sender.Equals(txtHour) == false)
            this.txtHour.TextChanged -= new EventHandler(txtAge_TextChanged);

            if (sender.Equals(txtYear))
            {
                this.txtMonth.Text = "0";
                this.txtDay.Text   = "0";
                this.txtHour.Text  = "0";
            }
            if (sender.Equals(txtMonth))
            {
                this.txtYear.Text = "0";
                this.txtDay.Text  = "0";
                this.txtHour.Text = "0";
            }
            if (sender.Equals(txtDay))
            {
                this.txtMonth.Text = "0";
                this.txtYear.Text  = "0";
                this.txtHour.Text  = "0";
            }
            if (sender.Equals(txtHour))
            {
                this.txtMonth.Text = "0";
                this.txtDay.Text   = "0";
                this.txtYear.Text  = "0";
            }


            AgeValue value = new AgeValue();

            value.Y_num = ConvertDataExtend.ToInt32(txtYear.Text, 0);
            value.M_num = ConvertDataExtend.ToInt32(txtMonth.Text, 0);
            value.D_num = ConvertDataExtend.ToInt32(txtDay.Text, 0);
            value.H_num = ConvertDataExtend.ToInt32(txtHour.Text, 0);

            //this.birth.Text = AgeExtend.GetDateTime(value).ToString("yyyyMMddHHmm");
            this.birth.Value = AgeExtend.GetDateTime(value);

            //if (sender.Equals(txtYear)==false)
            this.txtYear.TextChanged += new EventHandler(txtAge_TextChanged);
            //if (sender.Equals(txtMonth) == false)
            this.txtMonth.TextChanged += new EventHandler(txtAge_TextChanged);
            //if (sender.Equals(txtDay) == false)
            this.txtDay.TextChanged += new EventHandler(txtAge_TextChanged);
            //if (sender.Equals(txtHour) == false)
            this.txtHour.TextChanged += new EventHandler(txtAge_TextChanged);
            this.birth.ValueChanged  += new EventHandler(birth_TextChanged);
        }
Example #2
0
        /// <summary>
        /// 将年龄转换为出生日期
        /// </summary>
        /// <param name="age">年龄</param>
        /// <returns>出生日期</returns>
        public static DateTime GetDateTime(AgeValue age)
        {
            System.DateTime date = DateTime.Now;

            date = date.AddYears((-1) * age.Y_num);

            date = date.AddMonths((-1) * age.M_num);

            date = date.AddDays((-1) * age.D_num);

            date = date.AddHours((-1) * age.H_num);

            return(date);
        }
        private void birth_TextChanged(object sender, EventArgs e)
        {
            //this.birth.TextChanged -= new EventHandler(birth_TextChanged);
            this.txtYear.TextChanged  -= new EventHandler(txtAge_TextChanged);
            this.txtMonth.TextChanged -= new EventHandler(txtAge_TextChanged);
            this.txtDay.TextChanged   -= new EventHandler(txtAge_TextChanged);
            this.txtHour.TextChanged  -= new EventHandler(txtAge_TextChanged);

            AgeValue value = AgeExtend.GetAgeValue(AgeBirthday);

            txtYear.Text  = value.Y_num.ToString();
            txtMonth.Text = value.M_num.ToString();
            txtDay.Text   = value.D_num.ToString();
            txtHour.Text  = value.H_num.ToString();

            this.txtYear.TextChanged  += new EventHandler(txtAge_TextChanged);
            this.txtMonth.TextChanged += new EventHandler(txtAge_TextChanged);
            this.txtDay.TextChanged   += new EventHandler(txtAge_TextChanged);
            this.txtHour.TextChanged  += new EventHandler(txtAge_TextChanged);
            //this.birth.TextChanged += new EventHandler(birth_TextChanged);
        }
Example #4
0
        /// <summary>
        /// 将出生日期转换为年龄
        /// </summary>
        /// <param name="birthday">出生日期</param>
        /// <returns>年龄</returns>
        public static AgeValue GetAgeValue(DateTime birthday)
        {
            AgeValue age = new AgeValue();

            System.DateTime current = DateTime.Now;

            int _year   = current.Year - birthday.Year;
            int _month  = current.Month - birthday.Month;
            int _day    = current.Day - birthday.Day;
            int _hour   = current.Hour - birthday.Hour;
            int _minute = current.Minute - birthday.Minute;

            if (_minute < 0)
            {
                _hour   = _hour - 1;
                _minute = _minute + 60;
            }
            if (_hour < 0)
            {
                _day  = _day - 1;
                _hour = _hour + 24;
            }
            if (_day < 0)
            {
                _month = _month - 1;
                _day   = _day + DateTime.DaysInMonth(birthday.Year, birthday.Month);
            }
            if (_month < 0)
            {
                _year  = _year - 1;
                _month = _month + 12;
            }

            age.Y_num = _year;
            age.M_num = _month;
            age.D_num = _day;
            age.H_num = _hour;

            if (_year >= 15)
            {
                age.M_num = 0;
                age.D_num = 0;
                age.H_num = 0;
            }
            else if (_year >= 1)
            {
                age.D_num = 0;
                age.H_num = 0;
            }
            else if (_month >= 1)
            {
                age.H_num = 0;
            }
            #region old

            /*
             * if (birthday.Year != current.Year)
             * {
             *  if (birthday.Month > current.Month && current.Year - birthday.Year == 1)
             *  {
             *      age.Y_num = 0;
             *      age.M_num = current.Month + 12 - birthday.Month;
             *      age.D_num = 0;
             *      age.H_num = 0;
             *  }
             *  else
             *  {
             *      age.Y_num =current.Year - birthday.Year;
             *      age.M_num = 0;
             *      age.D_num = 0;
             *      age.H_num = 0;
             *  }
             * }
             * else if (birthday.Month != current.Month)
             * {
             *  if (current.Month - birthday.Month == 1 && current.Day < birthday.Day)
             *  {
             *      age.Y_num = 0;
             *      age.M_num = 0;
             *      age.D_num = current.Day + 30 - birthday.Day;
             *      age.H_num = 0;
             *  }
             *  else
             *  {
             *      age.Y_num = 0;
             *      age.M_num = current.Month - birthday.Month;
             *      age.D_num = 0;
             *      age.H_num = 0;
             *  }
             * }
             * else if (birthday.Day != current.Day)
             * {
             *  if (current.Day - birthday.Day == 1 && current.Hour < birthday.Hour)
             *  {
             *      age.Y_num = 0;
             *      age.M_num = 0;
             *      age.D_num = 0;
             *      age.H_num = current.Hour - birthday.Hour + 24;
             *  }
             *  else
             *  {
             *      age.Y_num = 0;
             *      age.M_num = 0;
             *      age.D_num = current.Day - birthday.Day;
             *      age.H_num = 0;
             *  }
             * }
             * else if (birthday.Hour != current.Hour)
             * {
             *  age.Y_num = 0;
             *  age.M_num = 0;
             *  age.D_num = 0;
             *  age.H_num = current.Hour - birthday.Hour;
             * }*/
            #endregion
            return(age);
        }