Cách tính tuổi

Mỗi tuổi tròn được tính từ ngày, tháng sinh dương lịch của năm trước đến ngày, tháng sinh dương lịch của năm sau.

Thuật toán:

  • Quy ước, ký hiệu:
    • Ngày = ngày/tháng/năm = d/m/y
    • Ngày sinh (ngày, tháng, năm sinh) = bdate
    • Ngày tính tuổi (vd hôm nay) = cdate
  • d = Day(cdate) – Day(bdate)
  • m = Month(cdate) – Month(bdate)
  • y = Year(cdate) – Month(bdate)
  • Nếu d < 0 (thiếu ngày để đủ tháng) =>
    m = m -1
    d = Số ngày từ ngày sinh đến cuối tháng + Số ngày từ đầu tháng hiện tại đến ngày tính
    = Số ngày của tháng sinh – Ngày trong tháng của ngày sinh (Day(bdate)) + Ngày trong tháng của ngày tính
    = Số ngày của tháng sinh + d
  • Nếu m < 0 (thiếu tháng để đủ năm) =>
    y = y -1
    m = 12 + m

Tính bằng Ms Excel:

Dùng hàm DATEDIF(start_date, end_date, unit):

  • Số năm = DATEDIF(bdate;cdate;”y”)
  • Số tháng =DATEDIF(bdate;cdate;”ym”)
  • Số ngày = DATEDIF(bdate;cdate;”md”)

Tính bằng javascript:

function getDateDif(bdate, cdate) {
	// Tính khoảng cách giữa cdate và bdate (cdate sau bdate, tức cdate > bdate)
	// Trả về array: số năm, số tháng, số ngày
	var y = cdate.getFullYear() - bdate.getFullYear();
	var m = cdate.getMonth() - bdate.getMonth();
	var d = cdate.getDate() - bdate.getDate();        
	
	if (d < 0) {
		m--;
		var t = new Date(bdate.getFullYear(), bdate.getMonth() + 1, 0);                
		d += t.getDate();
	}
	
	if (m < 0) {
		m += 12;
		y--;
	}

	return new Array(y, m, d);
}

Xem tuổi hưu tại đây: Tính tuổi nghỉ hưu (lvluat.net)

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *