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); }
/// <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); }
/// <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); }