//
// Hung Nhật
// Author: Harry Tran (a.k.a Thiên Y) in USA (email: thien.y@operamail.com)
// Tham khảo: Ngọc Hạp Ký, Đổng Công Tuyển Yếu Lãm, Đạo Gia Trạch Nhật Học, PSD Trạch Nhật Học
//

// Tứ Ly 四離 [ DGTNH ]
//   Mỗi năm có 4 ngày trước Xuân Phân, Thu Phân, Đông Chí, Hạ Chí một ngày
// Kị: xuất hành, chinh chiến
// Kị: chư sự bất nghi, tạo táng, giá thú đại hung 
function tuLy(yy, mm, dd) // mm: DL (1..12)
{
  var n=0;
  if (mm == 3)
    n = TietKhi(yy, 5); // Xuân Phân
  else if (mm == 6)
    n = TietKhi(yy, 11); // Hạ Chí: 21,22
  else if (mm == 9)
    n = TietKhi(yy, 17); // Thu Phân
  else if (mm == 12)
    n = TietKhi(yy, 23); // Đông Chí: 21,22
  if (n) n--; // 1 Ngày trước những ngày trên
  return (n==dd?1:0);
}

// Tứ Lập: lập xuân, lập hạ, lập thu, lập đông
function tuLap(yy, mm, dd) // mm: DL (1..12)
{
  var n=0;
  if (mm == 2)
    n = TietKhi(yy, 2); // Lập Xuân
  else if (mm == 5)
    n = TietKhi(yy, 8); // Lập Hạ
  else if (mm == 8)
    n = TietKhi(yy, 14); // Lập Thu
  else if (mm == 11)
    n = TietKhi(yy, 20); // Lập Đông
  return (n==dd?1:0);
}

// Tứ Tuyệt 四絕 [ DGTNH ]
//   4 ngày Tứ Tuyệt (trước Lập Xuân, Lập Hạ, Lập Thu, Lập Đông một ngày).
// Kị: xuất quân đi xa
// Kị: chư sự bất nghi, tạo táng, giá thú đại hung 
function tuTuyetNhat(yy, mm, dd) // mm: DL (1..12)
{
  var n=0;
  if (mm == 2)
    n = TietKhi(yy, 2); // Lập Xuân
  else if (mm == 5)
    n = TietKhi(yy, 8); // Lập Hạ
  else if (mm == 8)
    n = TietKhi(yy, 14); // Lập Thu
  else if (mm == 11)
    n = TietKhi(yy, 20); // Lập Đông
  if (n) n--; // 1 Ngày trước những ngày trên
  return (n==dd?1:0);
}

// Tiểu Không Vong 小空亡 ; return 3 ngày
// kị xuất hành, kinh thương, cầu tài, xuất tài, nghi tác thọ mộc
function tieuKhongVong(th) // th: tháng âm lịch bắt đầu từ mồng 1
{
  var kv=[0,0,0];
  switch(th)
  {
  case  1: kv=[1,10,18]; break;
  case  2: kv=[1, 9,17]; break;
  case  3: kv=[8,16,24]; break;
  case  4: kv=[3,15,23]; break;
  case  5: kv=[6,14,22]; break;
  case  6: kv=[5,13,29]; break;
  case  7: kv=[12,20,28]; break;
  case  8: kv=[3,11,19]; break;
  case  9: kv=[2,10,26]; break;
  case 10: kv=[9,17,25]; break;
  case 11: kv=[2,16,24]; break;
  case 12: kv=[7,15,23]; break;
  }
  return kv;
}

// Đại Không Vong 大空亡 ; return 4 ngày
// kị cầu tài, xuất hành, kinh thương, xuất tài, thượng quan
function daiKhongVong(th) // th: tháng âm lịch bắt đầu từ mồng 1
{
  var kv=[0,0,0,0];
  switch(th)
  {
  case  1: kv=[6,14,22,30]; break;
  case  2: kv=[5,13,21,29]; break;
  case  3: kv=[4,12,20,28]; break;
  case  4: kv=[3,11,19,27]; break;
  case  5: kv=[2,10,18,26]; break;
  case  6: kv=[1, 9,17,25]; break;
  case  7: kv=[8,16,24,30]; break;
  case  8: kv=[7,15,23,29]; break;
  case  9: kv=[6,14,22,30]; break;
  case 10: kv=[5,13,21,29]; break;
  case 11: kv=[4,12,20,28]; break;
  case 12: kv=[3,11,19,27]; break;
  }
  return kv;
}

// Xung Tuổi
function xungTuoi(nn)
{
  var chi = DiaChi(nn);
  return chiXung(chi); // CHI
}

// Tam Hình
function tamHinh(nn)
{
  var chi = DiaChi(nn);
  return chiTamHinh(chi); // CHI vị
}

// Lục Hại
function lucHai(nn)
{
  var chi = DiaChi(nn);
  return (CHI[chiHai(chi)]); // CHI
}

// Tứ Tuyệt
function tuTuyet(nn)
{
  var chi = DiaChi(nn);
  return (CHI[chiTuyet(chi)]); // CHI
}

// Mệnh Tam Sát, nếu phạm tất gặp đại hung. Nhập Chi (Tý...Hợi)
function menh3Sat(chi)
{
  c = chiVi(chi);
  if (c == CHI.length) return 0;

  var s = 0; // Return a true CHI VI + 1 (1...12)
  switch(c)
  {
	// Tuổi: Thân, Tý, Thìn; kỵ năm, tháng, ngày, và giờ Mùi
  case 0: case 4: case 8: s = 8; break; // Đừng dùng ngày và giờ Mùi
	// Tuổi: Tỵ, Dậu, Sửu; kỵ năm, tháng, ngày, và giờ Thìn
  case 1: case 5: case 9: s = 5; break; // Đừng dùng ngày và giờ Thìn
	// Tuổi: Dần, Ngọ, Tuất; kỵ năm, tháng, ngày, và giờ Sửu
  case 2: case 6: case 10: s = 2; break; // Đừng dùng ngày và giờ Sửu
	// Tuổi: Hợi, Mão, Mùi; kỵ năm, tháng, ngày, và giờ Tuất
  case 3: case 7: case 11: s = 11; break; // Đừng dùng ngày và giờ Tuất
  }
  return s;
}

// Mệnh Tam Sát.
function tamSatMenh(nn)
{
  var chi = chiVi(DiaChi(nn));
  var m=[];
  switch(chi)
  {
  case  1: m = [2, 6, 10]; break; // ngày và giờ Sửu kị mệnh Dần, Ngọ, Tuất
  case  4: m = [5, 9, 1];  break; // ngày và giờ Thìn kị mệnh Tỵ, Dậu, Sửu
  case  7: m = [8, 0, 4];  break; // ngày và giờ Mùi kị mệnh Thân, Tý, Thìn
  case 10: m = [11, 3, 7]; break; // ngày và giờ Tuất kị mệnh Hợi, Mão, Mùi
  }
  return m;
}

function tamSatPhuong(t)
{
  var p=[]; // [ phương (0..3), chi (0..11), chi, chi ]
  switch(t)
  {
  case 1: case 5: case  9: p = [0, 11, 0, 1]; break;
  case 2: case 6: case 10: p = [3, 8, 9, 10]; break;
  case 3: case 7: case 11: p = [2, 5, 6, 7]; break;
  case 4: case 8: case 12: p = [1, 2, 3, 4]; break;
  }
  return p;
}

// Nguyệt Kỵ 月忌 [ DGTNH,  NHK ]
// bách sự kị
// Kị: nguyệt kị nhật bất nghi nhập học, phó nhâm, khai thị, lập khoán, giao dịch, di đồ, 
//     kết hôn nhân, giá thú, tu tạo, an sàng, động thổ, thụ trụ, thượng lương, phá thổ, 
//     khải toàn, an táng.
function nguyetKy(n) // n là ngày ÂL (1..30)
{
  var k=0;
  switch(n)
  {
  case  5: // sơ ngũ phạm trứ gia trường tử
  case 14: // thập tứ phùng chi thân tự đương
  case 23: // hành thuyền lạc thủy tao quan sự, giai nhân ngộ trứ nhị thập tam
    k=1; break; // Thế gian lấy dùng hãy suy lường.
  }
  return k;
}

// Tam Nương 三娘
// Kị: Tác sự cầu mưu định bất xương,
//   Nghinh thân giá thú rã uyên ương,
//   Xây nhà dựng cửa giảm nhân đinh,
//   Viễn du phó nhậm bất hồi hương.
function tamNuong(n) // n là ngày ÂL (1..30)
{
  var k=0;
  switch(n)
  {
  case  3: case  7: // Thượng tuần mùng 3 với mùng 7
  case 13: case 18: // Trung tuần 13, 18 đương
  case 22: case 27: k=1; break; // Hạ Tuần 22 với 27
  }
  return k;
}

// Tứ Bất Tường 四不祥 [ DGTNH, NHK ]
// kị thượng quan phó nhậm, lâm chánh thân dân, nhập trạch, giá thú, xuất hành
function tuBatTuong(n) // n là ngày ÂL (1..30)
{
  var k=0;
  switch(n)
  {
  case 4: case 7: case 16: case 19: case 28: k=1; break;
  }
  return k;
}

// Tiểu Hồng Sa Sát 紅沙殺 [ DCTYL, NHK (PSD) ]
// Kị:
// Làm nhà phạm ngày Hồng Sa, sau 100 ngày bị hỏa hoạn
// Giá thú phạm phải, 1 nữ lấy chồng 3 nhà
// Xuất hành phạm phải, tất định không trở lại
function tieuHongSa(t, nn) // t: tiết
{
  var chi = DiaChi(nn); // phải nhập vào Lunar.dd
  var k=0;
  switch(t)
  { // (DCTYL)
  case 1: case 4: case 7: case 10: if (chi == CHI[5]) k=1; break; // Tỵ
  case 2: case 5: case 8: case 11: if (chi == CHI[9]) k=1; break; // Dậu
  case 3: case 6: case 9: case 12: if (chi == CHI[1]) k=1; break; // Sửu
  }
  return k;
}

// Tứ Đại Kị Nhật 四大忌 hàng tháng, nhập Ngày
function tuDaiKy(n)
{
  var k=0;
  switch(n)
  { // Trong mỗi tháng 1, 9, 17, & 25
  case  1: k=1; break; // Giá thú, chồng chết gả chồng khác
  case  9: k=2; break; // Thượng lương, xây cất lửa cháy nhà
  case 17: k=3; break; // An táng, khởi bệnh ôn hoàng
  case 25: k=4; break; // Di cư, nhân tài lưỡng tổn thương
  }
  return k;
}

// Ngày Sát Chủ. t (1..12); nn: là tổng số ngày như Lunar.dd
function satChu(t, nn) // t: tiết
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[5])  k=1; break; // Tỵ
  case  2: if (chi == CHI[0])  k=1; break; // Tý
  case  3: if (chi == CHI[1])  k=1; break; // Sửu
  case  4: if (chi == CHI[8])  k=1; break; // Thân
  case  5: if (chi == CHI[3])  k=1; break; // Mão
  case  6: if (chi == CHI[10]) k=1; break; // Tuất
  case  7: if (chi == CHI[11]) k=1; break; // Hợi
  case  8: if (chi == CHI[6])  k=1; break; // Ngọ
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[2])  k=1; break; // Dần
  case 11: if (chi == CHI[9])  k=1; break; // Dậu
  case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Thụ Tử (Thọ Tử) 受死 [ DCTYL, DGTNH, NHK ]
// kị bách sự kị; duy điền liệp, thủ ngư, nhập liễm, di cữu, thành phục, trừ phục, phá thổ, khải toàn, an táng cát. 
function thuTu(t, nn) //  t (1..12); nn: Lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  { // DCTYL = NHK :
  case  1: if (chi == CHI[10]) k=1; break; // Tuất
  case  2: if (chi == CHI[4])  k=1; break; // Thìn
  case  3: if (chi == CHI[11]) k=1; break; // Hợi
  case  4: if (chi == CHI[5])  k=1; break; // Tỵ
  case  5: if (chi == CHI[0])  k=1; break; // Tý
  case  6: if (chi == CHI[6])  k=1; break; // Ngọ
  case  7: if (chi == CHI[1])  k=1; break; // Sửu
  case  8: if (chi == CHI[7])  k=1; break; // Mùi
  case  9: if (chi == CHI[2])  k=1; break; // Dần
  case 10: if (chi == CHI[8])  k=1; break; // Thân
  case 11: if (chi == CHI[3])  k=1; break; // Mão
  case 12: if (chi == CHI[9])  k=1; break; // Dậu
  }
  return k;
}

// Lục Bất Thành 六不成, Đại Bại 大敗 [ NHK, DGTNH ]
// Lục Bất Thành: bách sự bất nghi: xuất quân, doanh mưu, cầu hôn, bách sự tịnh hung
// kị khởi tạo, xỏ tai
function lucBatThanh(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[2])  k=1; break; // Dần
  case  2: if (chi == CHI[6])  k=1; break; // Ngọ
  case  3: if (chi == CHI[10]) k=1; break; // Tuất
  case  4: if (chi == CHI[5])  k=1; break; // Tỵ
  case  5: if (chi == CHI[9])  k=1; break; // Dậu
  case  6: if (chi == CHI[1])  k=1; break; // Sửu
  case  7: if (chi == CHI[8])  k=1; break; // Thân
  case  8: if (chi == CHI[0])  k=1; break; // Tý
  case  9: if (chi == CHI[4])  k=1; break; // Thìn
  case 10: if (chi == CHI[11]) k=1; break; // Hợi
  case 11: if (chi == CHI[3])  k=1; break; // Mão
  case 12: if (chi == CHI[7])  k=1; break; // Mùi
  }
  return k;
}

// Hoàng Sa 黃沙 [ NHK ]
// tối kị xuất hành. 
function hoangSa(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 4: case 7: case 10: if (chi == CHI[6]) k=1; break; // Ngọ
  case 2: case 5: case 8: case 11: if (chi == CHI[2]) k=1; break; // Dần
  case 3: case 6: case 9: case 12: if (chi == CHI[0]) k=1; break; // Tý
  }
  return k;
}

// Thiên Tặc 天賊 [ DGTNH, NHK, DCTYL ]
// kị khởi tạo, động thổ, thụ tạo, thượng quan, nhập trạch, an táng, giao dịch, khai thương khố, khai thị
function thienTac(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[4])  k=1; break; // Thìn
  case  2: if (chi == CHI[9])  k=1; break; // Dậu
  case  3: if (chi == CHI[2])  k=1; break; // Dần
  case  4: if (chi == CHI[7])  k=1; break; // Mùi
  case  5: if (chi == CHI[0])  k=1; break; // Tý
  case  6: if (chi == CHI[5])  k=1; break; // Tỵ
  case  7: if (chi == CHI[10]) k=1; break; // Tuất
  case  8: if (chi == CHI[3])  k=1; break; // Mão
  case  9: if (chi == CHI[8])  k=1; break; // Thân
  case 10: if (chi == CHI[1])  k=1; break; // Sửu
  case 11: if (chi == CHI[6])  k=1; break; // Ngọ
  case 12: if (chi == CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Nguyệt Yếm 月厭 = Đại Họa 大禍 = Địa Hỏa 地火 [ NHK, DCTYL ] = nguyệt áp
// Nguyệt Yếm kị giá thú (rước dâu), xuất hành
// Địa Hỏa kị khởi tạo
// nguyệt áp kị: xây dựng vườn tược, trồng cây
function nguyetYem(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[10]) k=1; break; // Tuất
  case  2: if (chi == CHI[9])  k=1; break; // Dậu
  case  3: if (chi == CHI[8])  k=1; break; // Thân
  case  4: if (chi == CHI[7])  k=1; break; // Mùi
  case  5: if (chi == CHI[6])  k=1; break; // Ngọ
  case  6: if (chi == CHI[5])  k=1; break; // Tỵ
  case  7: if (chi == CHI[4])  k=1; break; // Thìn
  case  8: if (chi == CHI[3])  k=1; break; // Mão
  case  9: if (chi == CHI[2])  k=1; break; // Dần
  case 10: if (chi == CHI[1])  k=1; break; // Sửu
  case 11: if (chi == CHI[0])  k=1; break; // Tý
  case 12: if (chi == CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Băng Tiêu Ngõa Giải 冰消瓦解 [ DGTNH, DCTYL ]
// Băng Tiêu Ngõa Hãm (NHK)
// bách sự giai kị
function bangTieuNgoaGiai(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[5])  k=1; break; // Tỵ
  case  2: if (chi == CHI[0])  k=1; break; // Tý
  case  3: if (chi == CHI[1])  k=1; break; // Sửu
  case  4: if (chi == CHI[2])  k=1; break; // Dần
  case  5: if (chi == CHI[3])  k=1; break; // Mão
  case  6: if (chi == CHI[10]) k=1; break; // Tuất
  case  7: if (chi == CHI[11]) k=1; break; // Hợi
  case  8: if (chi == CHI[6])  k=1; break; // Ngọ
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[8])  k=1; break; // Thân
  case 11: if (chi == CHI[9])  k=1; break; // Dậu
  case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Hà Khôi 河魁 [ DGTNH, NHK ]
// kị khởi tạo, an môn
function haKhoi(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[11]) k=1; break; // Hợi
  case  2: if (chi == CHI[6])  k=1; break; // Ngọ
  case  3: if (chi == CHI[1])  k=1; break; // Sửu
  case  4: if (chi == CHI[8])  k=1; break; // Thân
  case  5: if (chi == CHI[3])  k=1; break; // Mão
  case  6: if (chi == CHI[10]) k=1; break; // Tuất
  case  7: if (chi == CHI[5])  k=1; break; // Tỵ
  case  8: if (chi == CHI[0])  k=1; break; // Tý
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[2])  k=1; break; // Dần
  case 11: if (chi == CHI[9])  k=1; break; // Dậu
  case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Câu Giảo 勾絞 [ DCTYL ]
// Kị bách sự, giá thú (rước dâu), xuất hành
function cauGiao(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  // (DGTNH = NHK (=Hà Khôi?)= Đại Họa )
  case  1: if (chi == CHI[11]) k=1; break; // Hợi
  case  2: if (chi == CHI[6])  k=1; break; // Ngọ
  case  3: if (chi == CHI[1])  k=1; break; // Sửu
  case  4: if (chi == CHI[8])  k=1; break; // Thân
  case  5: if (chi == CHI[3])  k=1; break; // Mão
  case  6: if (chi == CHI[10]) k=1; break; // Tuất
  case  7: if (chi == CHI[5])  k=1; break; // Tỵ
  case  8: if (chi == CHI[0])  k=1; break; // Tý
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[2])  k=1; break; // Dần
  case 11: if (chi == CHI[9])  k=1; break; // Dậu
  case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Thiên Hình hắc đạo 天刑黑道 [ DGTNH, NHK ]
// Thiên Hình hắc đạo, thiên hình tinh, lợi vu xuất sư, chiến vô bất khắc, kì tha động tác mưu vi giai 
// bất nghi dụng, đại kị từ tụng.
function thienHinh(t, nn) // t: tiet (1..12)
{
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  {
  case 1: case  7: if (chi == CHI[2] ) k=1; break; // Dần
  case 2: case  8: if (chi == CHI[4] ) k=1; break; // Thìn
  case 3: case  9: if (chi == CHI[6] ) k=1; break; // Ngọ
  case 4: case 10: if (chi == CHI[8] ) k=1; break; // Thân
  case 5: case 11: if (chi == CHI[10]) k=1; break; // Tuất
  case 6: case 12: if (chi == CHI[0] ) k=1; break; // Tý
  }
  return k;
}

// Chu Tước hắc đạo 朱雀黑道 [ DGTNH, NHK ]
// kị giá thú, di đồ, phân cư,  xuất hành, di cư, nhập trạch, an hương, từ tụng. dĩ kì lân phù, phượng hoàng phù chế hóa.
function chuTuoc(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[3])  k=1; break; // Mão
  case 2: case  8: if (chi == CHI[5])  k=1; break; // Tỵ
  case 3: case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 4: case 10: if (chi == CHI[9])  k=1; break; // Dậu
  case 5: case 11: if (chi == CHI[11]) k=1; break; // Hợi
  case 6: case 12: if (chi == CHI[1])  k=1; break; // Sửu
  }
  return k;
}

// Bạch Hổ hắc đạo 白虎黑道 [ DGTNH ] = Thiên Bồng [ NHK ]
// Bạch Hổ: kị tu tạo, giá thú, di cư, châm cứu, an táng
// Thiên Bồng: kị giá thú, khởi tạo, an táng, di cư, từ tụng (NHK)
function bachHo(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[6])  k=1; break; // Ngọ
  case 2: case  8: if (chi == CHI[8])  k=1; break; // Thân
  case 3: case  9: if (chi == CHI[10]) k=1; break; // Tuất
  case 4: case 10: if (chi == CHI[0])  k=1; break; // Tý
  case 5: case 11: if (chi == CHI[2])  k=1; break; // Dần
  case 6: case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Thiên Lao hắc đạo 天牢黑道 [ DGTNH ]
// kị khởi tạo, nhập trạch, di cư,  xuất hành, giá thú, an táng, từ tụng
function thienLao(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[8])  k=1; break; // Thân
  case 2: case  8: if (chi == CHI[10]) k=1; break; // Tuất
  case 3: case  9: if (chi == CHI[0])  k=1; break; // Tý
  case 4: case 10: if (chi == CHI[2])  k=1; break; // Dần
  case 5: case 11: if (chi == CHI[4])  k=1; break; // Thìn
  case 6: case 12: if (chi == CHI[6])  k=1; break; // Ngọ
  }
  return k;
}

// Huyền Vũ hắc đạo 玄武黑道 [ DGTNH ]
// kì nhật kị khai quật, thủ thổ, lập trụ thượng lương, giá thú, xuất hành, lâm quan thị sự. 
// Phạm chủ nữ nhân tư tình, đạo thất tài vật 
function huyenVu(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[9])  k=1; break; // Dậu
  case 2: case  8: if (chi == CHI[11]) k=1; break; // Hợi
  case 3: case  9: if (chi == CHI[1])  k=1; break; // Sửu
  case 4: case 10: if (chi == CHI[3])  k=1; break; // Mão
  case 5: case 11: if (chi == CHI[5])  k=1; break; // Tỵ
  case 6: case 12: if (chi == CHI[7])  k=1; break; // Mùi
  }
  return k;
}

// Câu Trần hắc đạo 勾陳黑道 [ DGTNH ]
// câu trần hắc đạo kị khởi tạo, nhập trạch, tu cư, giá thú
function cauTran(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[11]) k=1; break; // Hợi
  case 2: case  8: if (chi == CHI[1])  k=1; break; // Sửu
  case 3: case  9: if (chi == CHI[3])  k=1; break; // Mão
  case 4: case 10: if (chi == CHI[5])  k=1; break; // Tỵ
  case 5: case 11: if (chi == CHI[7])  k=1; break; // Mùi
  case 6: case 12: if (chi == CHI[9])  k=1; break; // Dậu
  }
  return k;
}

// Cửu Thổ Quỷ Nhật 九土鬼 [ DCTYL, NHK, DGTNH ]
// kị thượng nhậm, xuất hành, khởi tạo, động thổ, giao dịch, an môn
function cuuThoQuyNhat(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  if      (can==CAN[1] && chi==CHI[9] ) k=1;  // ất dậu
  else if (can==CAN[9] && chi==CHI[5] ) k=1;  // quý tị
  else if (can==CAN[0] && chi==CHI[6] ) k=1;  // giáp ngọ
  else if (can==CAN[7] && chi==CHI[1] ) k=1;  // tân sửu
  else if (can==CAN[8] && chi==CHI[2] ) k=1;  // nhâm dần
  else if (can==CAN[5] && chi==CHI[9] ) k=1;  // kỷ dậu
  else if (can==CAN[6] && chi==CHI[11]) k=1;  // canh tuất
  else if (can==CAN[3] && chi==CHI[5] ) k=1;  // đinh tị 
  else if (can==CAN[4] && chi==CHI[6] ) k=1;  // mậu ngọ
  return k;
}

// Thiên Cách 天隔 [ DGTNH ]
// kị xuất hành, cầu quan
function thienCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[2] ) k=1; break; // Dần
  case 2: case  8: if (chi == CHI[0] ) k=1; break; // Tý
  case 3: case  9: if (chi == CHI[10]) k=1; break; // Tuất
  case 4: case 10: if (chi == CHI[8] ) k=1; break; // Thân
  case 5: case 11: if (chi == CHI[6] ) k=1; break; // Ngọ
  case 6: case 12: if (chi == CHI[4] ) k=1; break; // Thìn
  }
  return k;
}

// Lâm Cách 林隔 [ DGTNH ]
// kị xuất hành, bộ liệp (săn bắn)
function lamCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[3] ) k=1; break; // Mão
  case 2: case  8: if (chi == CHI[1] ) k=1; break; // Sửu
  case 3: case  9: if (chi == CHI[11]) k=1; break; // Hợi
  case 4: case 10: if (chi == CHI[9] ) k=1; break; // Dậu
  case 5: case 11: if (chi == CHI[7] ) k=1; break; // Mùi
  case 6: case 12: if (chi == CHI[5] ) k=1; break; // Tỵ
  }
  return k;
}

// Địa Cách 地隔 [ DGTNH ]
// kị chủng thực, an táng
function diaCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[4] ) k=1; break; // Thìn
  case 2: case  8: if (chi == CHI[2] ) k=1; break; // Dần
  case 3: case  9: if (chi == CHI[0] ) k=1; break; // Tý
  case 4: case 10: if (chi == CHI[10]) k=1; break; // Tuất
  case 5: case 11: if (chi == CHI[8] ) k=1; break; // Thân
  case 6: case 12: if (chi == CHI[6] ) k=1; break; // Ngọ
  }
  return k;
}

// Thần Cách 神隔 [ DGTNH, NHK ]
// kị kì phúc, tế tự 
function thanCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[5] ) k=1; break; // Tỵ
  case 2: case  8: if (chi == CHI[3] ) k=1; break; // Mão
  case 3: case  9: if (chi == CHI[1] ) k=1; break; // Sửu
  case 4: case 10: if (chi == CHI[11]) k=1; break; // Hợi
  case 5: case 11: if (chi == CHI[9] ) k=1; break; // Dậu
  case 6: case 12: if (chi == CHI[7] ) k=1; break; // Mùi
  }
  return k;
}

// Hỏa Cách 火隔 [ DGTNH ]
// kị châm cứu, diêu dã (đúc lò)
function hoaCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[6] ) k=1; break; // Ngọ
  case 2: case  8: if (chi == CHI[4] ) k=1; break; // Thìn
  case 3: case  9: if (chi == CHI[2] ) k=1; break; // Dần
  case 4: case 10: if (chi == CHI[0] ) k=1; break; // Tý
  case 5: case 11: if (chi == CHI[10]) k=1; break; // Tuất
  case 6: case 12: if (chi == CHI[8] ) k=1; break; // Thân
  }
  return k;
}

// Sơn Cách 山隔 [ DGTNH ]
// kị bộ liệp, nhập sơn phạt mộc
function sonCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[7] ) k=1; break; // Mùi
  case 2: case  8: if (chi == CHI[5] ) k=1; break; // Tỵ
  case 3: case  9: if (chi == CHI[3] ) k=1; break; // Mão
  case 4: case 10: if (chi == CHI[1] ) k=1; break; // Sửu
  case 5: case 11: if (chi == CHI[11]) k=1; break; // Hợi
  case 6: case 12: if (chi == CHI[9] ) k=1; break; // Dậu
  }
  return k;
}

// Quỷ Cách 鬼隔 [ DGTNH ]
// kị tế tự, kì phúc
function quyCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[8] ) k=1; break; // Thân
  case 2: case  8: if (chi == CHI[6] ) k=1; break; // Ngọ
  case 3: case  9: if (chi == CHI[4] ) k=1; break; // Thìn
  case 4: case 10: if (chi == CHI[2] ) k=1; break; // Dần
  case 5: case 11: if (chi == CHI[0] ) k=1; break; // Tý
  case 6: case 12: if (chi == CHI[10]) k=1; break; // Tuất
  }
  return k;
}

// Nhân Cách 人隔 [ DGTNH = NHK ]
// kị tiến nhân khẩu, giá thú
function nhanCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[9] ) k=1; break; // Dậu
  case 2: case  8: if (chi == CHI[7] ) k=1; break; // Mùi
  case 3: case  9: if (chi == CHI[5] ) k=1; break; // Tỵ
  case 4: case 10: if (chi == CHI[3] ) k=1; break; // Mão
  case 5: case 11: if (chi == CHI[1] ) k=1; break; // Sửu
  case 6: case 12: if (chi == CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Thủy Cách 水隔 [ DGTNH ]
// kị khai đường, bộ ngư, xuyên tỉnh, hành thuyền, chủng cốc, tài mộc
function thuyCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[10]) k=1; break; // Tuất
  case 2: case  8: if (chi == CHI[8] ) k=1; break; // Thân
  case 3: case  9: if (chi == CHI[6] ) k=1; break; // Ngọ
  case 4: case 10: if (chi == CHI[4] ) k=1; break; // Thìn
  case 5: case 11: if (chi == CHI[2] ) k=1; break; // Dần
  case 6: case 12: if (chi == CHI[0] ) k=1; break; // Tý
  }
  return k;
}

// Châu Cách 州隔 [ DGTNH ]
// kị từ tụng
function chauCach(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[11]) k=1; break; // Hợi
  case 2: case  8: if (chi == CHI[9] ) k=1; break; // Dậu
  case 3: case  9: if (chi == CHI[7] ) k=1; break; // Mùi
  case 4: case 10: if (chi == CHI[5] ) k=1; break; // Tỵ
  case 5: case 11: if (chi == CHI[3] ) k=1; break; // Mão
  case 6: case 12: if (chi == CHI[1] ) k=1; break; // Sửu
  }
  return k;
}

// Nguyệt Hình 月刑 [ DGTNH ]
// Kị: xuất quân, công chiến, dưỡng dục, sanh tài, kết hôn nhân, doanh tạo ốc xá 
function nguyetHinh(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[5])  k=1; break; // Tỵ
  case  2: if (chi == CHI[0])  k=1; break; // Tý
  case  3: if (chi == CHI[4])  k=1; break; // Thìn
  case  4: if (chi == CHI[8])  k=1; break; // Thân
  case  5: if (chi == CHI[6])  k=1; break; // Ngọ
  case  6: if (chi == CHI[1])  k=1; break; // Sửu
  case  7: if (chi == CHI[2])  k=1; break; // Dần
  case  8: if (chi == CHI[9])  k=1; break; // Dậu
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[11]) k=1; break; // Hợi
  case 11: if (chi == CHI[3])  k=1; break; // Mão
  case 12: if (chi == CHI[10]) k=1; break; // Tuất
  }
  return k;
}

// Nguyên Vũ 元武 = Huyền Vũ hắc đạo [ DGTNH ]
// Kị mai táng
function nguyenVu(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[9])  k=1; break; // Dậu
  case 2: case  8: if (chi == CHI[11]) k=1; break; // Hợi
  case 3: case  9: if (chi == CHI[1])  k=1; break; // Sửu
  case 4: case 10: if (chi == CHI[3])  k=1; break; // Mão
  case 5: case 11: if (chi == CHI[5])  k=1; break; // Tỵ
  case 6: case 12: if (chi == CHI[7])  k=1; break; // Mùi
  }
  return k;
}

// Phá Bại Tinh 破敗 [ DGTNH, NHK ]
// kị tạo tác (chế tạo)
function phaBai(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi == CHI[8])  k=1; break; // Thân
  case 2: case  8: if (chi == CHI[10]) k=1; break; // Tuất
  case 3: case  9: if (chi == CHI[0])  k=1; break; // Tý
  case 4: case 10: if (chi == CHI[2])  k=1; break; // Dần
  case 5: case 11: if (chi == CHI[4])  k=1; break; // Thìn
  case 6: case 12: if (chi == CHI[6])  k=1; break; // Ngọ
  }
  return k;
}

// Ương Bại 殃敗 = Thiên Ngục 天獄 [ DCTY, DGTNH, NHK ]
// Ương Bại kị xuất quân, phó nhậm, tu thương khố, khai thị, giao dịch, nạp tài
// thiên ngục kị hiến phong chương, hưng từ tụng, phó nhậm, chinh thảo
function uongBai(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[3])  k=1; break; // Mão
  case  2: if (chi == CHI[2])  k=1; break; // Dần
  case  3: if (chi == CHI[1])  k=1; break; // Sửu
  case  4: if (chi == CHI[0])  k=1; break; // Tý
  case  5: if (chi == CHI[11]) k=1; break; // Hợi
  case  6: if (chi == CHI[10]) k=1; break; // Tuất
  case  7: if (chi == CHI[9])  k=1; break; // Dậu
  case  8: if (chi == CHI[8])  k=1; break; // Thân
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[6])  k=1; break; // Ngọ
  case 11: if (chi == CHI[5])  k=1; break; // Tỵ
  case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Kiếp Sát 劫煞 [ DGTNH ]
// Kị mọi thứ mọi sự, kị động thổ
function kiepSat(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[11]) k=1; break; // Hợi
  case 2: case 6: case 10: if (chi == CHI[8])  k=1; break; // Thân
  case 3: case 7: case 11: if (chi == CHI[5])  k=1; break; // Tỵ
  case 4: case 8: case 12: if (chi == CHI[2])  k=1; break; // Dần
  }
  return k;
}

// Nguyệt Sát 月煞 = Nguyệt Hư 月虛 [ DGTNH-4 ]
// Kị: tiếp khách, xuyên đục, trồng trọt, nạp gia xúc
// nguyệt sát: kị tác sự
// nguyệt hư: kị tạo môn, xuất tài, nạp tài, nạp súc, khai thương khố điếm 
function nguyetSat(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[1])  k=1; break; // Sửu
  case 2: case 6: case 10: if (chi == CHI[10]) k=1; break; // Tuất
  case 3: case 7: case 11: if (chi == CHI[7])  k=1; break; // Mùi
  case 4: case 8: case 12: if (chi == CHI[4])  k=1; break; // Thìn
  }
  return k;
}

// Nguyệt Hại 月害 [ DGTNH ] = Nguyệt Hỏa 月火= Độc Hỏa 獨火 (NHK)
// Kị: kết hôn, mời thầy chữa bệnh, công thành, giã chiến, mướn người làm, chăn nuôi
// Nguyệt Hỏa kị khởi tạo, châm cứu, cái ốc, tác táo, tố họa thần tượng 
// Độc Hỏa kị khởi tạo, châm cứu, cái ốc, tác táo, tố họa thần tượng 
function nguyetHai(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[5])  k=1; break; // Tỵ
  case  2: if (chi == CHI[4])  k=1; break; // Thìn
  case  3: if (chi == CHI[3])  k=1; break; // Mão
  case  4: if (chi == CHI[2])  k=1; break; // Dần
  case  5: if (chi == CHI[1])  k=1; break; // Sửu
  case  6: if (chi == CHI[0])  k=1; break; // Tý
  case  7: if (chi == CHI[11]) k=1; break; // Hợi
  case  8: if (chi == CHI[10]) k=1; break; // Tuất
  case  9: if (chi == CHI[9])  k=1; break; // Dậu
  case 10: if (chi == CHI[8])  k=1; break; // Thân
  case 11: if (chi == CHI[7])  k=1; break; // Mùi
  case 12: if (chi == CHI[6])  k=1; break; // Ngọ
  }
  return k;
}

// Nguyệt Hình 月刑 [ DGTNH-5 ]
// kị an phủ biên cảnh, tuyển tướng huấn binh, xuất sư, cầu y liệu bệnh
function nguyetHinh(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[5])  k=1; break; // Tỵ
  case  2: if (chi == CHI[0])  k=1; break; // Tý
  case  3: if (chi == CHI[4])  k=1; break; // Thìn
  case  4: if (chi == CHI[8])  k=1; break; // Thân
  case  5: if (chi == CHI[6])  k=1; break; // Ngọ
  case  6: if (chi == CHI[1])  k=1; break; // Sửu
  case  7: if (chi == CHI[2])  k=1; break; // Dần
  case  8: if (chi == CHI[9])  k=1; break; // Dậu
  case  9: if (chi == CHI[7])  k=1; break; // Mùi
  case 10: if (chi == CHI[11]) k=1; break; // Hợi
  case 11: if (chi == CHI[3])  k=1; break; // Mão
  case 12: if (chi == CHI[10]) k=1; break; // Tuất
  }
  return k;
}

// Dương Công Kỵ 楊公忌 [ DGTNH, NHK ]
// bách sự kị
// Việc: cưới xin, làm nhà cửa, vui mừng khai hạ, xuất hành đi xa, khai trương cửa hàng, 
// cửa hiệu, gieo mạ cấy lúa, tế tự, thương biểu, nhập học, xuất quân, an táng v.v. 
// Thường bắt đầu làm bất cứ việc gì như động thổ, khai bút, khai ấn, nhậm chức v.v.
function duongCong(th, n) // th: tháng âm lịch bắt đầu từ mồng 1
{
  var k=0;
  switch(th)
  {
  case  1: if (n == 13) k=1; break;
  case  2: if (n == 11) k=1; break;
  case  3: if (n == 9 ) k=1; break;
  case  4: if (n == 7 ) k=1; break;
  case  5: if (n == 5 ) k=1; break;
  case  6: if (n == 3 ) k=1; break;
  case  7: if (n == 1 || n == 29) k=1; break;
  case  8: if (n == 27) k=1; break;
  case  9: if (n == 25) k=1; break;
  case 10: if (n == 23) k=1; break;
  case 11: if (n == 21) k=1; break;
  case 12: if (n == 19) k=1; break;
  }
  return k;
}

// Thiên Địa Hung Bại 天地凶敗 [ DGTNH ]
// kị thượng quan, xuất hành, khai thị, giao dịch, nhập trạch
function thienDiaHungBai(th, n) // th: tháng âm lịch bắt đầu từ mồng 1
{
  var k=0;
  switch(th)
  {
  case  1: if (n == 7  || n == 21) k=1; break;
  case  2: if (n == 8  || n == 19) k=1; break;
  case  3: if (n == 1  || n == 12) k=1; break;
  case  4: if (n == 9  || n == 25) k=1; break;
  case  5: if (n == 15 || n == 25) k=1; break;
  case  6: if (n == 1  || n == 20) k=1; break;
  case  7: if (n == 8  || n == 21) k=1; break;
  case  8: if (n == 2  || n == 18) k=1; break;
  case  9: if (n == 3  || n == 16) k=1; break;
  case 10: if (n == 1  || n == 14) k=1; break;
  case 11: if (n == 14 || n == 15) k=1; break;
  case 12: if (n == 9  || n == 25) k=1; break;
  }
  return k;
}

// Xích Tùng Tử Hạ Giáng 赤松子忌
// kị giá thú, nhập trạch
function xichTungTu(t, n) // th: tháng âm lịch bắt đầu từ mồng 1
{
  var k=0;
  switch(t)
  {
  case  1: if (n == 7  || n == 11) k=1; break;
  case  2: if (n == 9  || n == 19) k=1; break;
  case  3: if (n == 15 || n == 16) k=1; break;
  case  4: if (n == 9  || n == 22) k=1; break;
  case  5: if (n == 9  || n == 14) k=1; break;
  case  6: if (n == 10 || n == 20) k=1; break;
  case  7: if (n == 8  || n == 23) k=1; break;
  case  8: if (n == 18 || n == 29) k=1; break;
  case  9: if (n == 2  || n == 30) k=1; break;
  case 10: if (n == 1  || n == 14) k=1; break;
  case 11: if (n == 2  || n == 21) k=1; break;
  case 12: if (n == 1  || n == 30) k=1; break;
  }
  return k;
}

// Thiên Cẩu 天狗 = Mãn nhật 滿 [ NHK, DGTNH ] = Địa Thư 地雌 = Thổ Ôn 土瘟
// Thiên Cẩu kị giá thú, sanh sản
// Thổ Ôn kị động thổ, xuyên tỉnh
// Địa Thư kị giá thú
function thienCau(t, truc, nn) // t (tiết)
{
  var man = CHI[(t+3)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Mãn'==TRUC12[truc] && (chi==man)) k=1;

  return k;
}

// Tử Khí 死氣 = trực Định 定 = Quan Phù 官符 = Thời Âm 時陰 (cát nhật) [ DGTNH, NHK ]
// Quan Phù: kị bái quan, thị sự, thượng biểu chương, trần từ tụng
// Tử Khí: kị khởi tạo, động thổ, di cư, tạo tửu khúc tương thố
function tuKhi(t, truc, nn)
{
  var dinh = CHI[(t+5)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Định'==TRUC12[truc] && (chi==dinh)) k=1;

  return k;
}

// Tiểu Hao 小耗 = trực Chấp 執 [ DGTNH, NHK, lịch lệ ]
// kị kinh doanh, chủng thi (trồng cấy lại), nạp tài, giao dịch, khai thị, lập khoán, xuất hóa tài
// với thiên đức, nguyệt đức, thiên đức hợp, nguyệt đức hợp, thiên nguyện tinh, tắc bất kị
function tieuHao(t, truc, nn) // t (tiết)
{
  var chap = CHI[(t+6)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Chấp'==TRUC12[truc] && (chi==chap)) k=1;

  return k;
}

// Đại Hao 大耗 = Nguyệt Phá 月破 = trực Phá 破 [ DGTNH, NHK  lịch lệ ]
// đại hao: kị khai thị, lập khoán, giao dịch, nạp tài, kì phúc, cầu tự, yến hội, kết hôn nhân, giá thú, an sàng, phá thổ, an táng
// nguyệt phá: bách sự bất nghi
function daiHao(t, truc, nn) // t (tiết)
{
  var pha = CHI[(t+7)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Phá'==TRUC12[truc] && (chi==pha)) k=1;

  return k;
}

// Thổ Cấm 土禁 , Phục Tội 伏罪, Kim Đao 金刀 [ DGTNH, NHK ]
// thổ cấm kị an táng
// phục tội kị thượng quan, luận tụng 
// kim đao kị phạt mộc, khởi tạo, giá mã
function thoCam(T, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(T)
  {
  case 0: if (chi == CHI[11]) k=1; break; // Hợi
  case 1: if (chi == CHI[2] ) k=1; break; // Dần
  case 2: if (chi == CHI[5] ) k=1; break; // Tỵ
  case 3: if (chi == CHI[8] ) k=1; break; // Thân
  }
  return k;
}

// Vãng Vong 往亡 = Thổ Kỵ 土忌 [ DGTNH, DCTYL, NHK ]
// kị bái quan thượng nhậm, viễn hành, quy gia, xuất quân chinh thảo, giá thú, tầm y, phó nhậm, xuất hành, giá thú, cầu mưu 
// thổ kị: kị an táng
function vangVong(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[2] ) k=1; break; // Dần
  case  2: if (chi == CHI[5] ) k=1; break; // Tỵ
  case  3: if (chi == CHI[8] ) k=1; break; // Thân
  case  4: if (chi == CHI[11]) k=1; break; // Hợi
  case  5: if (chi == CHI[3] ) k=1; break; // Mão
  case  6: if (chi == CHI[6] ) k=1; break; // Ngọ
  case  7: if (chi == CHI[9] ) k=1; break; // Dậu
  case  8: if (chi == CHI[0] ) k=1; break; // Tý
  case  9: if (chi == CHI[4] ) k=1; break; // Thìn
  case 10: if (chi == CHI[7] ) k=1; break; // Mùi
  case 11: if (chi == CHI[10]) k=1; break; // Tuất
  case 12: if (chi == CHI[1] ) k=1; break; // Sửu
  }
  return k;
}

// Tai Sát 災煞 = Thiên Hỏa 天火 = Phi Ma Sát 披麻煞 = Thiên Ngục 天獄 [ DGTNH-4,27 ]
// kị giá thú, hội họp thân quyến, lập gia đình
// Thiên Hỏa kị xây cất nhà cửa, xuất thân chinh phạt
// Phi Ma Sát kị giá thú, nhập trạch 
// Thiên Ngục kị hiến phong chương, hưng từ tụng, phó nhậm, chinh thảo
function taiSatPhiMa(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[0]) k=1; break; // Tý
  case 2: case 6: case 10: if (chi == CHI[3]) k=1; break; // Mão
  case 3: case 7: case 11: if (chi == CHI[6]) k=1; break; // Ngọ
  case 4: case 8: case 12: if (chi == CHI[9]) k=1; break; // Dậu
  }
  return k;
}

// Hỏa Tinh 火星凶日 [ DGTNH ]
// kị tu tạo, thượng cái (che lợp), khởi táo, tài ý
function hoaTinh(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 4: case 7: case 10:
    if ((can==CAN[1] || can==CAN[7]) && chi==CHI[1]) k=1; // Ất Sửu, Tân Sửu
    else if ((can==CAN[0] || can==CAN[6]) && chi==CHI[10]) k=1; // Giáp Tuất, Canh Tuất
    else if ((can==CAN[5] || can==CAN[9]) && chi==CHI[7]) k=1; // Kỷ Mùi, Quý Mùi
    else if (can==CAN[8] && chi==CHI[4]) k=1; // Nhâm Thìn
    break;
  case 2: case 5: case 8: case 11:
    if ((can==CAN[0] || can==CAN[6]) && chi==CHI[0]) k=1; // Giáp Tý, Canh Tý
    else if ((can==CAN[5] || can==CAN[9]) && chi==CHI[9]) k=1; // Kỷ Dậu, Quý Dậu
    else if ((can==CAN[8] || can==CAN[4]) && chi==CHI[6]) k=1; // Nhâm Ngọ, Mậu Ngọ
    else if (can==CAN[7] && chi==CHI[3]) k=1; // Tân Mão
    break;
  case 3: case 6: case 9: case 12:
    if ((can==CAN[0] || can==CAN[8]) && chi==CHI[4]) k=1; // Giáp Thìn, Nhâm Thìn (DCTYL: nhâm thân, mậu thân ?)
    else if ((can==CAN[7] || can==CAN[3]) && chi==CHI[5]) k=1; // Tân Tỵ, Đinh Tỵ
    else if (can==CAN[5] && chi==CHI[11]) k=1; // Kỷ Hợi
    else if (can==CAN[6] && chi==CHI[2]) k=1; // Canh Dần
    break;
  }
  return k;
}

// Bát Phong 八風 [ DGTNH ] 
// kị: thừa ngư, hành thuyền, thừa thuyền, độ thủy, cái ốc (lợp nhà).
// Đi với thiên đức, nguyệt đức, thiên đức hợp, nguyệt đức hợp, lục hợp tinh không kị 
function batPhong(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: // Xuân Đinh Sửu, Kỷ Dậu
    if ((can==CAN[3] && chi==CHI[1]) || (can==CAN[5] && chi==CHI[9])) k=1; break;
  case 1: // Hạ Giáp Thân, Giáp Thìn
    if ((can==CAN[0] && chi==CHI[8]) || (can==CAN[0] && chi==CHI[4])) k=1; break;
  case 2: // Thu Tân Mùi, Đinh Mùi
    if ((can==CAN[7] && chi==CHI[7]) || (can==CAN[3] && chi==CHI[7])) k=1; break;
  case 3: // Đông Giáp Tuất, Giáp Dần
    if ((can==CAN[0] && chi==CHI[10]) || (can==CAN[2] && chi==CHI[4])) k=1; break;
  }
  return k;
}

// Khước Sát
function khuocSat(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  // Đinh Sửu, Đinh Mùi, Đinh Tị, Đinh Hợi; Giáp Thân, Giáp Tuất, Giáp Thìn, Giáp Dần
  if (can==CAN[3] && (chi==CHI[1] || chi==CHI[7] || chi==CHI[5] || chi==CHI[11])) k=1;
  else if (can==CAN[0] && (chi==CHI[8] || chi==CHI[10] || chi==CHI[4] || chi==CHI[2])) k=1;
  return k;
}

// Thượng Sóc nhật 上朔 [ DGTNH, PSD ]
// Kị: yến hội, giá thú, viễn hành, thượng quan, nhập trạch
function thuongSoc(nien, nn) // nien (2007=Đinh+Sửu ... Tân Tỵ
{
  var nc = TueCanVi(nien); // Niên Can
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(nc)
  {
  case 0: if (can==CAN[9] && chi==CHI[11]) k=1; break; // Quí Hợi
  case 1: if (can==CAN[5] && chi==CHI[5] ) k=1; break; // Kỷ Tỵ
  case 2: if (can==CAN[1] && chi==CHI[11]) k=1; break; // Ất Hợi
  case 3: if (can==CAN[7] && chi==CHI[5] ) k=1; break; // Tân Tỵ
  case 4: if (can==CAN[3] && chi==CHI[11]) k=1; break; // Đinh Hợi
  case 5: if (can==CAN[9] && chi==CHI[5] ) k=1; break; // Quí Tỵ
  case 6: if (can==CAN[5] && chi==CHI[11]) k=1; break; // Kỷ Hợi
  case 7: if (can==CAN[1] && chi==CHI[11]) k=1; break; // Ất Tỵ
  case 8: if (can==CAN[7] && chi==CHI[11]) k=1; break; // Quí Hợi
  case 9: if (can==CAN[3] && chi==CHI[11]) k=1; break; // Quí Tỵ
  }
  return k;
}

// Cửu Tiêu 九焦 = Khô Tiêu 枯焦 = Cửu Khảm 九坎 = cửu không 九空 [ DGTNH ]
// cửu tiêu, cửu khảm: kị chủng thực, chú tả (đúc rót), thiêu diêu (đốt lò)
// cửu không : kị chủng thực, khai thương khố, xuất hành, xuất tài
function cuuTieu(t, nn) // t: tiet (1..12)
{
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  {
  case  1: if (chi == CHI[4] ) k=1; break; // Thìn
  case  2: if (chi == CHI[1] ) k=1; break; // Sửu
  case  3: if (chi == CHI[10]) k=1; break; // Tuất
  case  4: if (chi == CHI[7] ) k=1; break; // Mùi
  case  5: if (chi == CHI[3] ) k=1; break; // Mão
  case  6: if (chi == CHI[0] ) k=1; break; // Tý
  case  7: if (chi == CHI[9] ) k=1; break; // Dậu
  case  8: if (chi == CHI[6] ) k=1; break; // Ngọ
  case  9: if (chi == CHI[2] ) k=1; break; // Dần
  case 10: if (chi == CHI[11]) k=1; break; // Hợi
  case 11: if (chi == CHI[8] ) k=1; break; // Thân
  case 12: if (chi == CHI[5] ) k=1; break; // Tỵ
  }
  return k;
}

// Tuế Phá 歲破 [ PSD, DGTNH-29 ]
// bách sự kị
function tuePha(nien, nn) // nien (2007)
{
  var nc = TueChiVi(nien); // Niên Chi
  var chi = DiaChi(nn);
  var k=0;

  switch(nc)
  {
  case  0: if (chi == CHI[6] ) k=1; break; // Ngọ
  case  1: if (chi == CHI[7] ) k=1; break; // Mùi
  case  2: if (chi == CHI[8] ) k=1; break; // Thân
  case  3: if (chi == CHI[9] ) k=1; break; // Dậu
  case  4: if (chi == CHI[10]) k=1; break; // Tuất
  case  5: if (chi == CHI[11]) k=1; break; // Hợi
  case  6: if (chi == CHI[0] ) k=1; break; // Tý
  case  7: if (chi == CHI[1] ) k=1; break; // Sửu
  case  8: if (chi == CHI[2] ) k=1; break; // Dần
  case  9: if (chi == CHI[3] ) k=1; break; // Mão
  case 10: if (chi == CHI[4] ) k=1; break; // Thìn
  case 11: if (chi == CHI[5] ) k=1; break; // Tỵ
  }
  return k;
}

// Ngũ Mộ 五墓 [ DGTNH ]
//   chánh, nhị nguyệt ất mùi; tứ, ngũ nguyệt bính tuất; thất, bát nguyệt tân sửu;
//   thập nguyệt, thập nhất nguyệt nhâm thìn; tứ quý nguyệt mậu thìn
// Kị: doanh tạo, khởi thổ, động thổ, giá thú, xuất quân
function nguMo(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: case  2: if (can==CAN[1] && chi==CHI[7])  k=1; break; // Ất Mùi 
  case  4: case  5: if (can==CAN[2] && chi==CHI[10]) k=1; break; // Bính Tuất
  case  7: case  8: if (can==CAN[7] && chi==CHI[1])  k=1; break; // Tân Sửu
  case 10: case 11: if (can==CAN[8] && chi==CHI[4])  k=1; break; // Nhâm Thìn
  case 3: case 6: case 9: case 12: if (can==CAN[4] && chi==CHI[4]) k=1; break; // Tứ Quí: Mậu Thìn
  }
  return k;
}

// Tuyệt Yên Hỏa 絕煙火 [ DGTNH ]
// Kị: cưới hỏi, làm nhà, chôn cất, dọn nhà
// kị phân cư, nhập trạch, tác táo, tạo diêu (lò), liệu bệnh
function tuyetYenHoa(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  // PSD 論擇日: chánh, ngũ, cửu nguyệt đinh mão nhật; nhị, lục, thập nguyệt giáp tý nhật;
  // tam, thất, thập nhất nguyệt quý dậu nhật; tứ, bát, thập nhị nguyệt canh ngọ nhật 
  case 1: case 5: case  9: if (can==CAN[3] && chi==CHI[3]) k=1; break; // Đinh Mão
  case 2: case 6: case 10: if (can==CAN[0] && chi==CHI[0]) k=1; break; // Giáp Tý
  case 3: case 7: case 11: if (can==CAN[9] && chi==CHI[9]) k=1; break; // Quí Dậu
  case 4: case 8: case 12: if (can==CAN[6] && chi==CHI[6]) k=1; break; // Canh Ngọ
  }
  return k;
}

// Đại Thời 大時 = Đại Bại 大敗 = Hàm Trì 咸池 [ DGTNH ]
// Kị: kết hôn, an táng, thăng quan nhậm chức
// đại bại: bách sự bất nghi
// Hàm Trì kị giá thú, thủ ngư, thừa thuyền, độ thủy
function daiThoi(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[3]) k=1; break; // Mão
  case 2: case 6: case 10: if (chi == CHI[0]) k=1; break; // Tý
  case 3: case 7: case 11: if (chi == CHI[9]) k=1; break; // Dậu
  case 4: case 8: case 12: if (chi == CHI[6]) k=1; break; // Ngọ
  }
  return k;
}

// Thiên Lại 天吏 = Trí Tử 致死 [ DGTNH = NHK ]
// Thiên Lại: kị lâm quan, phó nhậm, viễn hành, từ tụng, đi xa (để tránh cướp)
// Trí Tử: kị cầu y dược
function thienLai(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[9]) k=1; break; // Dậu
  case 2: case 6: case 10: if (chi == CHI[6]) k=1; break; // Ngọ
  case 3: case 7: case 11: if (chi == CHI[3]) k=1; break; // Mão
  case 4: case 8: case 12: if (chi == CHI[0]) k=1; break; // Tý
  }
  return k;
}

// Du Họa 遊禍 [ DGTNH-5 ]
// Kị: cúng tế, mời thầy chữa bệnh, phục dược, xuất hành 
function duHoa(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[5])  k=1; break; // Tỵ 
  case 2: case 6: case 10: if (chi == CHI[2])  k=1; break; // Dần 
  case 3: case 7: case 11: if (chi == CHI[11]) k=1; break; // Hợi 
  case 4: case 8: case 12: if (chi == CHI[8])  k=1; break; // Thân 
  }
  return k;
}

// Thổ Phù 土符 [ DGTNH ]
// Kị: phá thổ, động thổ, xuyên tỉnh, khai cừ, trúc tường
function thoPhu(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[1] ) k=1; break; // Sửu
  case  2: if (chi == CHI[5] ) k=1; break; // Tỵ
  case  3: if (chi == CHI[9] ) k=1; break; // Dậu
  case  4: if (chi == CHI[2] ) k=1; break; // Dần
  case  5: if (chi == CHI[6] ) k=1; break; // Ngọ
  case  6: if (chi == CHI[10]) k=1; break; // Tuất
  case  7: if (chi == CHI[3] ) k=1; break; // Mão
  case  8: if (chi == CHI[7] ) k=1; break; // Mùi
  case  9: if (chi == CHI[11]) k=1; break; // Hợi
  case 10: if (chi == CHI[4] ) k=1; break; // Thìn
  case 11: if (chi == CHI[8] ) k=1; break; // Thân
  case 12: if (chi == CHI[0] ) k=1; break; // Tý
  }
  return k;
}

// Cửu Không 九空 = Tài Ly 財離 = Tuế Không 歲空 [ DGTNH ]
// Kị: xuất hành, cầu tài, khai thương
// cửu không kị xuất hành, khai thương khố điếm, an sàng, tố họa thần tượng, tu lục súc lan phương
// tài li kị xuất tài, khai điếm tứ, xuất hành
function cuuKhong(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[4])  k=1; break; // Thìn 
  case 2: case 6: case 10: if (chi == CHI[1])  k=1; break; // Sửu 
  case 3: case 7: case 11: if (chi == CHI[10]) k=1; break; // Tuất 
  case 4: case 8: case 12: if (chi == CHI[7])  k=1; break; // Mùi 
  }
  return k;
}

// Thiên Binh 天兵 [ Res ]
function thienBinh(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (can==CAN[3] && chi==CHI[11]) k=1; break; // đinh hợi
  case 2: case 6: case 10: if (can==CAN[2] && chi==CHI[8]) k=1; break; // bính thân
  case 3: case 7: case 11: if (can==CAN[3] && chi==CHI[5]) k=1; break; // đinh tị 
  case 4: case 8: case 12: if (can==CAN[2] && chi==CHI[2]) k=1; break; // bính dần
  }
  return k;
}

// Yếm Đối 厭對 = Lục Nghi 六儀 (cát nhật) = Chiêu Diêu 招搖 [ DGTNH ]
// Kị: giá thú
function yemDoi(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[4])  k=1; break; // Thìn<-Tuất
  case  2: if (chi == CHI[3])  k=1; break; // Mão<-Dậu
  case  3: if (chi == CHI[2])  k=1; break; // Dần<-Thân
  case  4: if (chi == CHI[1])  k=1; break; // Sửu<-Mùi
  case  5: if (chi == CHI[0])  k=1; break; // Tý<-Ngọ
  case  6: if (chi == CHI[11]) k=1; break; // Hợi<-Tỵ
  case  7: if (chi == CHI[10]) k=1; break; // Tuất<-Thìn
  case  8: if (chi == CHI[9])  k=1; break; // Dậu<-Mão
  case  9: if (chi == CHI[8])  k=1; break; // Thân<-Dần
  case 10: if (chi == CHI[7])  k=1; break; // Mùi<-Sửu
  case 11: if (chi == CHI[6])  k=1; break; // Ngọ<-Tý
  case 12: if (chi == CHI[5])  k=1; break; // Tỵ<-Hợi
  }
  return k;
}

// Cửu Sửu 九醜 [ DGTNH ]
// Kị: dựng nhà, giá thú, di chuyển, xuất quân
// kị xuất sư, giá thú, xuất hành, di tỉ, an táng
function cuuSuu(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  if      (can==CAN[1] && chi==CHI[6]) k=1; // Ất Mão 
  else if (can==CAN[1] && chi==CHI[9]) k=1; // Ất Dậu
  else if (can==CAN[4] && chi==CHI[6]) k=1; // Mậu Ngọ 
  else if (can==CAN[4] && chi==CHI[0]) k=1; // Mậu Tý 
  else if (can==CAN[4] && chi==CHI[6]) k=1; // Mậu Ngọ 
  else if (can==CAN[4] && chi==CHI[0]) k=1; // Mậu Tý 
  else if (can==CAN[5] && chi==CHI[6]) k=1; // Kỷ Mão 
  else if (can==CAN[5] && chi==CHI[9]) k=1; // Kỷ Dậu
  else if (can==CAN[7] && chi==CHI[6]) k=1; // Tân Mão 
  else if (can==CAN[7] && chi==CHI[9]) k=1; // Tân Dậu
  else if (can==CAN[8] && chi==CHI[0]) k=1; // Nhâm Tý
  else if (can==CAN[8] && chi==CHI[6]) k=1; // Nhâm Ngọ 
  return k;
}

// Bát Chuyên 八專 [ PSD = DGTNH ]
// Kị: giá thú, xuất quân
function batChuyen(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  if      (can==CAN[3] && chi==CHI[7]) k=1; // Đinh Mùi
  else if (can==CAN[5] && chi==CHI[7]) k=1; // Kỷ Mùi
  else if (can==CAN[6] && chi==CHI[8]) k=1; // Canh Thân
  else if (can==CAN[0] && chi==CHI[2]) k=1; // Giáp Dần
  else if (can==CAN[9] && chi==CHI[1]) k=1; // Quí Sửu
  return k;
}

// Thập Phương Mộ
// Hung Nhật: can chi tương khắc
// Kị: giá thú, hôn nhân
function thapPhuong(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  if      (can==CAN[0] && chi==CHI[8] ) k=1; // Giáp Thân
  else if (can==CAN[1] && chi==CHI[9] ) k=1; // Ất Dậu
  else if (can==CAN[3] && chi==CHI[11]) k=1; // Đinh Hợi
  else if (can==CAN[4] && chi==CHI[0] ) k=1; // Mậu Tý
  else if (can==CAN[6] && chi==CHI[2] ) k=1; // Canh Dần
  else if (can==CAN[7] && chi==CHI[3] ) k=1; // Tân Mão
  else if (can==CAN[8] && chi==CHI[4] ) k=1; // Nhâm Thìn
  else if (can==CAN[9] && chi==CHI[5] ) k=1; // Quí Tỵ
  else if (can==CAN[7] && chi==CHI[9] ) k=1; // Tân Dậu
  else if (can==CAN[8] && chi==CHI[10]) k=1; // Nhâm Tuất
  return k;
}

// Vô Lộc, Thập Ác Đại Bại 無祿、十惡大敗 [ PSD, DGTN & TCTB ]
// Kị:  vì Vô Lộc, không được lộc gì
// Bất kị tế tự, giải trừ, mộc dục, tảo trừ, bình chỉnh, phá ốc, tu sức 
function voLoc(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  if      (can==CAN[0] && chi==CHI[4] ) k=1; // Giáp Thìn
  else if (can==CAN[1] && chi==CHI[5] ) k=1; // Ất Tỵ
  else if (can==CAN[6] && chi==CHI[4] ) k=1; // Canh Thìn
  else if (can==CAN[7] && chi==CHI[5] ) k=1; // Tân Tỵ
  else if (can==CAN[2] && chi==CHI[8] ) k=1; // Bính Thân
  else if (can==CAN[4] && chi==CHI[10]) k=1; // Mậu Tuất
  else if (can==CAN[3] && chi==CHI[11]) k=1; // Đinh Hợi
  else if (can==CAN[5] && chi==CHI[1] ) k=1; // Kỷ Sửu
  else if (can==CAN[8] && chi==CHI[8] ) k=1; // Nhâm Thân
  else if (can==CAN[9] && chi==CHI[11]) k=1; // Quí Hợi
  return k;
}

// Ngũ Ly 五離 [ DGTNH ] = Trừ Thần 除神 (cát nhật)
// Kị: kết hôn, giá thú, họp bạn, lập khế ước
function nguLy(nn)
{
  var chi = DiaChi(nn);
  var k=0;
  if (chi==CHI[8] || chi==CHI[9]) k=1; // Thân, Dậu
  return k;
}

// Trùng Nhật 重日= Trùng Phục 重復 [ DGTNH ]
// Kị: kị việc HUNG nhưng lại tốt việc CÁT
function trungNhat(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  if (chi==CHI[5] || chi==CHI[11]) k=1; // Tỵ hoặc Hợi
  return k;
}

// Tứ Hao 四耗 [ DGTNH ]
// Kị: cầu tài, khai nghiệp, kiến thương khố 
function tuHao(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[8] && chi==CHI[0]) k=1; break; // Xuân Nhâm Tý
  case 1: if (can==CAN[1] && chi==CHI[3]) k=1; break; // Hạ Ất Mão
  case 2: if (can==CAN[4] && chi==CHI[6]) k=1; break; // Thu Mậu Ngọ
  case 3: if (can==CAN[7] && chi==CHI[9]) k=1; break; // Đông Tân Dậu
  }

  return k;
}

// Tứ Kị 四忌 [ DGTNH ]
// Kị: hôn nhân, giá thú, xuất sư, nạp thải vấn danh, an táng 
function tuKi(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  // A quick check
  if (chi!=CHI[0]) return k;

  switch(T) {
  case 0: if (can==CAN[0]) k=1; break; // Xuân: Giáp Tý
  case 1: if (can==CAN[2]) k=1; break; // Hạ:   Bính Tý
  case 2: if (can==CAN[6]) k=1; break; // Thu:  Canh Tý
  case 3: if (can==CAN[8]) k=1; break; // Đông: Nhâm Tý
  }

  return k;
}

// Tứ Cùng 四窮 [ DGTNH ]
// Kị: khai nghiệp cầu tài, kết hôn nhân, giá thú, xuất sư, an táng ; thụ tạo di động thận dụng
function tuCung(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  // A quick check
  if (chi!=CHI[11]) return k;

  switch(T) {
  case 0: if (can==CAN[1]) k=1; break; // Xuân: Ất Hợi
  case 1: if (can==CAN[3]) k=1; break; // Hạ:   Đinh Hợi
  case 2: if (can==CAN[7]) k=1; break; // Thu:  Tân Hợi
  case 3: if (can==CAN[9]) k=1; break; // Đông: Quí Hợi
  }

  return k;
}

// Tứ Phế 四廢 [ DGTNH, NHK ]
// Kị: kị xuất hành, cầu tài khai nghiệp, thụ tạo di bộ, giá thú (bách sự kị dụng), xuất quân chinh phạt, tạo xá, nghênh thân,
// bái quan, nạp tài, khai thị 
function tuPhe(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[7] && chi==CHI[9]) k=1;  // Xuân: Tân Dậu & Canh Thân
     else if (can==CAN[6] && chi==CHI[8]) k=1; break;
  case 1: if (can==CAN[9] && chi==CHI[11]) k=1; // Hạ:   Quí Hợi & Nhâm Tý
     else if (can==CAN[8] && chi==CHI[0]) k=1; break;
  case 2: if (can==CAN[1] && chi==CHI[3]) k=1;  // Thu:  Ất Mão & Giáp Dần (DCTYL: Tân Mão ?)
     else if (can==CAN[0] && chi==CHI[2]) k=1; break;
  case 3: if (can==CAN[3] && chi==CHI[5]) k=1;  // Đông: Đinh Tỵ & Bính Ngọ
     else if (can==CAN[2] && chi==CHI[6]) k=1; break;
  }

  return k;
}

// Tứ Thời Đại Mộ 四時大墓 [ NHK ]
// kị giá thú, cầu y, xuất hành
function tuThoiDaiMo(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[1] && chi==CHI[7]) k=1; break; // Xuân: Ất Mùi
  case 1: if (can==CAN[2] && chi==CHI[11]) k=1; break; // Hạ:  Bính Tuất
  case 2: if (can==CAN[7] && chi==CHI[1]) k=1; break; // Thu:  Tân Sửu
  case 3: if (can==CAN[8] && chi==CHI[4]) k=1; break; // Đông: Nhâm Thìn
  }

  return k;
}

// Ngũ Hư 五虛 = Hoang Vu 荒蕪 [ DGTNH, NHK ] = cửu khổ bát cùng nhật 九苦八窮日
// Ngũ Hư kị tu thương khố, khai thương khố, xuất hóa tài, xuất hành, an sàng
//   Đi với thiên đức, nguyệt đức, thiên đức hợp, nguyệt đức hợp, lục hợp tinh, không kị
// Hoang Vu: kị tu thương khố, khai thương khố, xuất hóa tài 
// cửu khổ bát cùng nhật bách sự hung
function nguHu(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[5] || chi==CHI[9] || chi==CHI[1]) k=1; break; // Xuân mộc vượng kị tị dậu sửu
  case 1: if (chi==CHI[8] || chi==CHI[0] || chi==CHI[4]) k=1; break; // Hạ hỏa vượng kị thân tý thìn
  case 2: if (chi==CHI[11] || chi==CHI[3] || chi==CHI[7]) k=1; break; // Thu kim vượng kị hợi mão mùi
  case 3: if (chi==CHI[2] || chi==CHI[6] || chi==CHI[10]) k=1; break; // Đông thủy vượng kị dần ngọ tuất
  }

  return k;
}

// Lỗ Ban Sát 魯般煞 = Bại Nhật 敗日= Bất Cử 不舉 [ DGTNH ]
// lỗ ban sát kị khởi công, khởi tạo, giá mã
// bất cử kị thượng quan, di cư, kết hôn nhân, giao dịch, nhập học
function loBanSat(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[0]) k=1; break; // Xuân Tý
  case 1: if (chi==CHI[3]) k=1; break; // Hạ  Mão 
  case 2: if (chi==CHI[6]) k=1; break; // Thu Ngọ 
  case 3: if (chi==CHI[9]) k=1; break; // Đông Dậu
  }

  return k;
}

// Thiên Cương 天罡 = Diệt Môn [ DGTNH ]
// bách sự hung
// Diệt Môn kị tạo tác, an môn, táng mai tổn nhân đinh
function thienCuong(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[5] ) k=1; break; // Tỵ
  case  2: if (chi == CHI[0] ) k=1; break; // Tý
  case  3: if (chi == CHI[7] ) k=1; break; // Mùi
  case  4: if (chi == CHI[2] ) k=1; break; // Dần
  case  5: if (chi == CHI[9] ) k=1; break; // Dậu
  case  6: if (chi == CHI[4] ) k=1; break; // Thìn
  case  7: if (chi == CHI[11]) k=1; break; // Hợi
  case  8: if (chi == CHI[6] ) k=1; break; // Ngọ
  case  9: if (chi == CHI[1] ) k=1; break; // Sửu
  case 10: if (chi == CHI[8] ) k=1; break; // Thân
  case 11: if (chi == CHI[3] ) k=1; break; // Mão
  case 12: if (chi == CHI[10]) k=1; break; // Tuất
  }
  return k;
}

// Nguyệt Kiến 月建 đồng hành (trực Kiến 建) = Tiểu Thời 小時 = Thổ Phủ 土府
// Tiểu Thời kị kết hôn nhân, khai thương khố, xuất hóa tài
// Nguyệt Kiến kị hưng tạo thổ công, kết thân lễ
// Thổ Phủ kị doanh kiến cung thất, tu cung thất, thiện thành quách, trúc đê phòng, hưng tạo động thổ,  phá thổ, 
//    tu thương khố, tu trí sản thất, khai cừ, xuyên tỉnh, phá ốc hoại viên, phạt mộc, tài chủng 
function nguyetKien(t, nn)
{
  var kien = CHI[(t+1)%12]
  var chi = DiaChi(nn);
  var k=0;

  if (chi==kien) k=1;

  return k;
}

// Tử Thần 死神 = Bình nhật 平日 (đồng hành) = Địa Hỏa 地火 [!= Nguyệt Yếm (Địa Hỏa)]
// Tử Thần kị thỉnh y, phục dược, xuất sư, chinh thảo, chủng thực thụ mộc, tiến nhân, nạp súc 
function tuThan(t, truc, nn) // t (tiết)
{
  var binh = CHI[(t+4)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Bình'==TRUC12[truc] && (chi==binh)) k=1;

  return k;
}

// Tứ Hư 四虛 = trực Nguy 危 = Long Hội 龍會 [ DGTNH ]
// Long Hội kị tu trì, tác yển (đắp đất)
function tuHu(t, truc, nn) // t (tiết)
{
  var nguy = CHI[(t+8)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Nguy'==TRUC12[truc] && (chi==nguy)) k=1;

  return k;
}

// Thiên Hùng 天雄 = trực Thành 成 = Thiên Y 天醫 = Thiên Hỷ 天喜 (cát nhật)
// thiên hùng kị giá thú
function thienHung(t, truc, nn) // t (tiết)
{
  var thanh = CHI[(t+9)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Thành'==TRUC12[truc] && (chi==thanh)) k=1;

  return k;
}

// Thu Nhật 收
// kị: khởi tạo (chế tạo), an táng, an môn
function thuNhatDiaPha(t, truc, nn) // t (tiết)
{
  var thu = CHI[(t+10)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Thu'==TRUC12[truc] && (chi==thu)) k=1;

  return k;
}

// Địa Nang 地囊 [ DGTNH-9 ]
// kị: doanh kiến cung thất, tu cung thất, thiện thành quách, trúc đê phòng, hưng tạo động thổ,
// tu thương khố, tu trí sản thất, khai cừ xuyên tỉnh, an đối ngại, bổ viên, tu sức viên tường, bình trì đạo đồ,
// phá ốc hoại viên, tài chủng, phá thổ 
function diaNang(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  {
  case  1: if (can==CAN[6] && (chi==CHI[0] || chi==CHI[6])) k=1; break; // Canh Tý Canh Ngọ
  case  2:  if (can==CAN[9] && (chi==CHI[7] || chi==CHI[1])) k=1; break; // Quí Mùi Quí Sửu
  case  3: if (can==CAN[0] && (chi==CHI[0] || chi==CHI[2])) k=1; break; // Giáp Tý Giáp Dần
  case  4: if (can==CAN[5] && (chi==CHI[3] || chi==CHI[1])) k=1; break; // Kỷ Mão Kỷ Sửu
  case  5: if (can==CAN[4] && (chi==CHI[4] || chi==CHI[6])) k=1; break; // Mậu Thìn Mậu Ngọ
  case  6: if (can==CAN[9] && (chi==CHI[7] || chi==CHI[5])) k=1; break; // Quí Mùi Quí Tỵ
  case  7: if (can==CAN[2] && (chi==CHI[2] || chi==CHI[8])) k=1; break; // Bính Dần Bính Thân
  case  8: if (can==CAN[2] && (chi==CHI[3] || chi==CHI[5])) k=1; break; // Đinh Mão Đinh Tỵ
  case  9: if (can==CAN[4] && (chi==CHI[4] || chi==CHI[0])) k=1; break; // Mậu Thìn Mậu Tý
  case 10: if (can==CAN[6] && (chi==CHI[10]|| chi==CHI[0])) k=1; break; // Canh Tuất Canh Tý
  case 11: if (can==CAN[7] && (chi==CHI[7] || chi==CHI[9])) k=1; break; // Tân Mùi Tân Dậu
  case 12: if (can==CAN[1] && (chi==CHI[9] || chi==CHI[7])) k=1; break; // Ất Dậu Ất Mùi 
  }
  return k;
}

// Quy Kị 歸忌 [ DGTNH ]
// kị đi xa (viễn hành), về nhà (quy gia), di dời chỗ, lấy vợ
// kị di đồ, nhập trạch, xuất hỏa, giá thú, viễn hồi quy ninh hung
function quyKi(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: case 4: case 7: case 10: if (chi == CHI[1]) k=1; break; // Sửu
  case  2: case 5: case 8: case 11: if (chi == CHI[2]) k=1; break; // Dần
  case  3: case 6: case 9: case 12: if (chi == CHI[0]) k=1; break; // Tý
  }
  return k;
}

// Huyết Kị 血忌 = Tục Thế 續世 (cát tinh) [ DGTN = NHK ]
// kị: châm chích, yết lục súc, xuyên ngưu tị (xỏ mũi trâu), xuyên tỉnh (đào giếng)
function huyetKi(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[1])  k=1; break; // Sửu
  case  2: if (chi==CHI[7])  k=1; break; // Mùi
  case  3: if (chi==CHI[2])  k=1; break; // Dần
  case  4: if (chi==CHI[8])  k=1; break; // Thân
  case  5: if (chi==CHI[3])  k=1; break; // Mão
  case  6: if (chi==CHI[9])  k=1; break; // Dậu
  case  7: if (chi==CHI[4])  k=1; break; // Thìn
  case  8: if (chi==CHI[10]) k=1; break; // Tuất
  case  9: if (chi==CHI[5])  k=1; break; // Tỵ
  case 10: if (chi==CHI[11]) k=1; break; // Hợi
  case 11: if (chi==CHI[6])  k=1; break; // Ngọ
  case 12: if (chi==CHI[0])  k=1; break; // Tý
  }
  return k;
}

// Trùng Tang 重喪 [ DGTNH, NHK ]
// kị an táng, mai táng 
function trungTang(t, nn)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case  1: if (can == CAN[0]) k=1; break; // giáp 
  case  2: if (can == CAN[1]) k=1; break; // ất 
  case  3: if (can == CAN[5]) k=1; break; // kỷ 
  case  4: if (can == CAN[2]) k=1; break; // bính 
  case  5: if (can == CAN[3]) k=1; break; // đinh 
  case  6: if (can == CAN[5]) k=1; break; // kỷ 
  case  7: if (can == CAN[6]) k=1; break; // canh 
  case  8: if (can == CAN[7]) k=1; break; // tân 
  case  9: if (can == CAN[5]) k=1; break; // kỷ 
  case 10: if (can == CAN[8]) k=1; break; // nhâm 
  case 11: if (can == CAN[9]) k=1; break; // quý 
  case 12: if (can == CAN[5]) k=1; break; // kỷ 
  }
  return k;
}

// Trùng Phục 重復 = Phục Tang 復喪 [ NHK ]
// kị hôn nhân, mai táng 
function trungPhuc(t, nn)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case  1: if (can == CAN[6]) k=1; break; // canh 
  case  2: if (can == CAN[7]) k=1; break; // tân 
  case  3: if (can == CAN[4]) k=1; break; // mậu 
  case  4: if (can == CAN[8]) k=1; break; // nhâm 
  case  5: if (can == CAN[9]) k=1; break; // quý 
  case  6: if (can == CAN[4]) k=1; break; // mậu 
  case  7: if (can == CAN[0]) k=1; break; // giáp 
  case  8: if (can == CAN[1]) k=1; break; // ất 
  case  9: if (can == CAN[4]) k=1; break; // mậu 
  case 10: if (can == CAN[2]) k=1; break; // bính 
  case 11: if (can == CAN[3]) k=1; break; // đinh 
  case 12: if (can == CAN[4]) k=1; break; // mậu 
  }
  return k;
}

// Phục Nhật 復日 [ DGTNH ]
// kị hung sự; nghi nhất thiết hỉ sự
function phucNhat(t, nn)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case 1:  case  7: if (can == CAN[0] || can == CAN[6]) k=1; break; // Giáp Canh
  case 2:  case  8: if (can == CAN[1] || can == CAN[7]) k=1; break; // Ất Tân
  case 4:  case 10: if (can == CAN[2] || can == CAN[8]) k=1; break; // Bính Nhâm
  case 5:  case 11: if (can == CAN[3] || can == CAN[9]) k=1; break; // Đinh Quý
  case 3:  case 6: case 9: case 12: if (can == CAN[4] || can == CAN[5]) k=1; break; // Mậu Kỷ
  }
  return k;
}

// Địa Tặc 地賊 [ DGTNH, Res ]
// Kị: tạo táng, xuất hành, động thổ
function diaTac(t, truc) // t (tiết)
{
  var k=0;
  switch(t)
  {
  case 1:  case  7: if (TRUC12[truc]=='Khai') k=1; break;
  case 2:  case  8: if (TRUC12[truc]=='Thu') k=1; break;
  case 3:  case  9: if (TRUC12[truc]=='Nguy') k=1; break;
  case 4:  case 10: if (TRUC12[truc]=='Chấp') k=1; break;
  case 5:  case 11: if (TRUC12[truc]=='Bình') k=1; break;
  case 6:  case 12: if (TRUC12[truc]=='Bế') k=1; break;
  }
  return k;
}

// Thiên Ôn 天瘟 [ DGTNH, NHK ]
// kị tu tạo, nhập trạch, quy hỏa, lục súc, mục dưỡng, trì bệnh
function thienOn(t, truc) // t (tiết)
{
  var k=0;
  switch(t)
  {
  case 1: if (TRUC12[truc]=='Chấp') k=1; break;
  case 2: if (TRUC12[truc]=='Nguy') k=1; break;
  case 3: case 5: case 10: if (TRUC12[truc]=='Kiến') k=1; break;
  case 4: if (TRUC12[truc]=='Thu') k=1; break;
  case 7: case 11: if (TRUC12[truc]=='Trừ') k=1; break;
  case 12: if (TRUC12[truc]=='Mãn') k=1; break;
  }
  return k;
}

// Mộc Mã Sát 木馬殺 [ DGTNH, NHK ]
// Kị: khởi công, giá mã, phạt mộc, tố lương
function mocMaSat(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[5])  k=1; break; // Tỵ
  case  2: if (chi==CHI[7])  k=1; break; // Mùi
  case  3: if (chi==CHI[9])  k=1; break; // Dậu
  case  4: if (chi==CHI[8])  k=1; break; // Thân
  case  5: if (chi==CHI[10]) k=1; break; // Tuất
  case  6: if (chi==CHI[0])  k=1; break; // Tý
  case  7: if (chi==CHI[11]) k=1; break; // Hợi
  case  8: if (chi==CHI[1])  k=1; break; // Sửu
  case  9: if (chi==CHI[3])  k=1; break; // Mão
  case 10: if (chi==CHI[2])  k=1; break; // Dần
  case 11: if (chi==CHI[4])  k=1; break; // Thìn
  case 12: if (chi==CHI[6])  k=1; break; // Ngọ
  }
  return k;
}

// Ngũ Bất Ngộ 五不遇 [ DGTNH ]
// Kị: xuất hành, cầu tài, thu bộ, bái yết
function nguBatNgo(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[10]) k=1; break; // Tuất
  case  2: if (chi==CHI[11]) k=1; break; // Hợi
  case  3: if (chi==CHI[6])  k=1; break; // Ngọ
  case  4: if (chi==CHI[7])  k=1; break; // Mùi
  case  5: if (chi==CHI[2])  k=1; break; // Dần
  case  6: if (chi==CHI[3])  k=1; break; // Mão
  case  7: if (chi==CHI[4])  k=1; break; // Thìn
  case  8: if (chi==CHI[5])  k=1; break; // Tỵ
  case  9: if (chi==CHI[0])  k=1; break; // Tý
  case 10: if (chi==CHI[1])  k=1; break; // Sửu
  case 11: if (chi==CHI[8])  k=1; break; // Thân
  case 12: if (chi==CHI[9])  k=1; break; // Dậu
  }
  return k;
}

// Tam Bất Phản 三不返 [ DGTNH ]
// Kị: thượng quan phó nhậm, xuất hành, trần binh, ứng thí, phó cử, cầu tài hung
function tamBatPhan(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (can==CAN[6] && chi==CHI[10] || can==CAN[7] && chi==CHI[11]) k=1; break; // Canh Tuất Tân Hợi
  case  2: if (chi==CHI[0] || chi==CHI[6] || chi==CHI[3] || chi==CHI[10]) k=1; break; // Tý Ngọ Mão Dậu
  case  3: if (chi==CHI[8] || chi==CHI[4])  k=1; break; // Thân Thìn
  case  4: if (chi==CHI[2] || chi==CHI[7])  k=1; break; // Dần Mùi
  case  5: if (chi==CHI[3] || chi==CHI[6])  k=1; break; // Mão Ngọ
  case  6: if (chi==CHI[4] || chi==CHI[5] || chi==CHI[7])  k=1; break; // Thìn Tỵ Mùi
  case  7: if (chi==CHI[4] || chi==CHI[5] || chi==CHI[8])  k=1; break; // Thìn Tỵ Thân
  case  8: if (chi==CHI[3] || chi==CHI[9] || chi==CHI[6])  k=1; break; // Mão Dậu Ngọ
  case  9: if (chi==CHI[10] || chi==CHI[7] || chi==CHI[2])  k=1; break; // Tuất Mùi Dần
  case 10: if (chi==CHI[10] || chi==CHI[11] || chi==CHI[8])  k=1; break; // Tuất Hợi Thân
  case 11: if (chi==CHI[9])  k=1; break; // Dậu
  case 12: if (chi==CHI[1] || chi==CHI[10] || chi==CHI[11])  k=1; break; // Sửu Tuất Hợi
  }
  return k;
}

// Ly Biệt 離別 [ DGTN ]
// Kị: giá thú, xuất hành 
function lyBiet(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1:  case  7: if (can==CAN[2] && chi==CHI[0]) k=1; break; // Bính Tý
  case 2: if (can==CAN[9] && chi==CHI[1]) k=1; break; // Quí Sửu
  case 3: if (can==CAN[2] && chi==CHI[2]) k=1; break; // Bính Dần
  case 4: if (can==CAN[2] && chi==CHI[4]) k=1; break; // Bính Thìn
  case 5:  case 6: if (can==CAN[3] && chi==CHI[5]) k=1; break; // Đinh Tỵ
  case 8: if (can==CAN[6] && chi==CHI[4]) k=1; break; // Canh Thìn
  case 9: if (can==CAN[7] && chi==CHI[7]) k=1; break; // Tân Mùi
  case 10: case 11: if (can==CAN[2] && chi==CHI[6]) k=1; break; // Bính Ngọ
  case 12: if (can==CAN[9] && chi==CHI[5]) k=1; break; // Quí Tỵ
  }
  return k;
}

// Xúc Thủy Long 觸水龍 [ 3T != DGTNH ]
// kị: thủ ngư, hành thuyền, thừa thuyền, độ thủy 
function xucThuyLong(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  // [ DGTNH : Lịch lệ ]
  if      (can==CAN[2] && chi==CHI[0]) k=1;  // Bính Tý
  else if (can==CAN[9] && chi==CHI[1]) k=1;  // Quí Sửu
  else if (can==CAN[9] && chi==CHI[7]) k=1;  // Quí Mùi
  return k;
}

// Trường Tinh 長星 [ DGTNH, NHK ]
// kị: tiến nhân khẩu, tài chế, kinh lạc, khai thị, lập khoán, giao dịch, nạp tài, nạp súc
// NHK kị tài y, nạp tài
function truongTinh(th, n) // t: tiet (1..12)
{
  var k=0;

  switch(th)
  {
  case  1: if (n == 7) k=1; break;
  case  2: if (n == 4) k=1; break;
  case  3: if (n == 1) k=1; break;
  case  4: if (n == 9) k=1; break;
  case  5: if (n == 15) k=1; break;
  case  6: if (n == 10) k=1; break;
  case  7: if (n == 8) k=1; break;
  case  8: if (n == 2 || n == 5) k=1; break;
  case  9: if (n == 3 || n == 4) k=1; break;
  case 10: if (n == 1) k=1; break;
  case 11: if (n == 12) k=1; break;
  case 12: if (n == 9) k=1; break;
  }
  return k;
}

// Đoản Tinh 短星 [ DGTNH, NHK ]
// kị: tiến nhân khẩu, tài chế, kinh lạc, khai thị, lập khoán, giao dịch, nạp tài, nạp súc
// NHK kị tài y, nạp tài
function doanTinh(th, n) // t: tiet (1..12)
{
  var k=0;

  switch(th)
  {
  case  1: if (n == 21) k=1; break;
  case  2: if (n == 19) k=1; break;
  case  3: if (n == 16) k=1; break;
  case  4: if (n == 25) k=1; break;
  case  5: if (n == 25) k=1; break;
  case  6: if (n == 20) k=1; break;
  case  7: if (n == 22) k=1; break;
  case  8: if (n == 18 || n == 19) k=1; break;
  case  9: if (n == 16 || n == 17) k=1; break;
  case 10: if (n == 14) k=1; break;
  case 11: if (n == 22) k=1; break;
  case 12: if (n == 25) k=1; break;
  }
  return k;
}

// Tam Tang 三丧 [ 3Tong ]
// đặc kị mai táng
function tamTang(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[4]) k=1; break; // Xuân Thìn
  case 1: if (chi==CHI[7]) k=1; break; // Hạ  Mùi
  case 2: if (chi==CHI[10]) k=1; break; // Thu Tuất
  case 3: if (chi==CHI[1]) k=1; break; // Đông Sửu
  }

  return k;
}

// Hư Bại 虛敗,Tứ Hư Bại 四虛敗
// kị khai thương khố, phân cư, nhập trạch 
function tuHuBai(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[5] && chi==CHI[9]) k=1; break; // Xuân: Kỷ Dậu
  case 1: if (can==CAN[0] && chi==CHI[0]) k=1; break; // Hạ:   Giáp Tý
  case 2: if (can==CAN[7] && chi==CHI[3]) k=1; break; // Thu:  Tân Mão
  case 3: if (can==CAN[4] && chi==CHI[6]) k=1; break; // Đông: Mậu Ngọ
  }

  return k;
}

// Thiên Địa Chánh Chuyển 天地正轉 [ DGTNH ]
// kị khởi tạo, tu doanh, động thổ, cơ địa, khai trì (ao), xuyên tỉnh 
function thienDiaChuyen(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[9] && chi==CHI[3]) k=1; break; // Xuân Quý Mão
  case 1: if (can==CAN[2] && chi==CHI[6]) k=1; break; // Hạ Bính Ngọ
  case 2: if (can==CAN[3] && chi==CHI[9]) k=1; break; // Thu Đinh Dậu
  case 3: if (can==CAN[6] && chi==CHI[0]) k=1; break; // Đông Canh Tý
  }

  return k;
}

// Thiên Địa Chuyển Sát 天地轉殺 [ DCTYL = NHK ]
// kị thổ, động thổ
function thienDiaChuyenSat(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[1] && chi==CHI[3] || can==CAN[7] && chi==CHI[3]) k=1; break; // Xuân: Ất Mão, Tân Mão
  case 1: if (can==CAN[2] && chi==CHI[6] || can==CAN[4] && chi==CHI[6]) k=1; break; // Hạ: Bính Ngọ, Mậu Ngọ
  case 2: if (can==CAN[7] && chi==CHI[9] || can==CAN[9] && chi==CHI[9]) k=1; break; // Thu: Tân Dậu, Quý Dậu
  case 3: if (can==CAN[8] && chi==CHI[0] || can==CAN[2] && chi==CHI[0]) k=1; break; // Đông: Nhâm Tý, Bính Tý
  }

  return k;
}

// Nguyệt Kiến Chuyển Sát 月建轉煞 [ NHK ] = thiên chuyển địa chuyển 天轉地轉 [ DGTNH ]
// kị khởi thủ tu tác, chủ kiến họa; động thổ
function nguyetKienChuyenSat(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[3]) k=1; break; // Xuân: Mão
  case 1: if (chi==CHI[6]) k=1; break; // Hạ: Ngọ
  case 2: if (chi==CHI[9]) k=1; break; // Thu: Dậu
  case 3: if (chi==CHI[0]) k=1; break; // Đông: Tý
  }

  return k;
}

// Đại Sát 大殺 [ DGTNH-10, Res ] = Phi Liêm 飛廉
// Đại Sát kị an phủ biên cảnh, tuyển tướng huấn binh, xuất sư, hành binh
// Phi Liêm kị thu dưỡng lục súc (thu nạp)
function phiLiem(t, truc) // t (tiết)
{
  var k=0;
  switch(t)
  {
  case 1: case 5: case 6: case 7: case 11: case 12: if (TRUC12[truc]=='Thành') k=1; break;
  case 2: case 3: case 4: case 8: case  9: case 10: if (TRUC12[truc]=='Mãn') k=1; break;
  }
  return k;
}

// Lôi Công 雷公 [ NHK ]
// kị động thổ, di cư
function loiCong(t, nn)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case  9: if (chi == CHI[2])  k=1; break; // Dần
  case 2: case 6: case 10: if (chi == CHI[11]) k=1; break; // Hợi
  case 3: case 7: case 11: if (chi == CHI[5])  k=1; break; // Tỵ
  case 4: case 8: case 12: if (chi == CHI[8])  k=1; break; // Thân
  }
  return k;
}

// Phủ Đầu Sát 斧頭殺 [ DGTNH ]
// kị phạt mộc, khởi tạo, giá mã 
function phuDauSat(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[4]) k=1; break; // Xuân thìn 
  case 1: if (chi==CHI[7]) k=1; break; // Hạ   mùi 
  case 2: if (chi==CHI[9]) k=1; break; // Thu  dậu 
  case 3: if (chi==CHI[0]) k=1; break; // Đông tý
  }

  return k;
}

// bách kị nhật
// giáp bất khai thương, ất bất tài thực, bính bất tu táo, đinh bất thế đầu,
// mậu bất thụ điền, kỷ bất phá khoán, canh bất kinh lạc, tân bất hợp tương,
// nhâm bất quyết thủy, quý bất từ tụng, tử bất vấn bặc, sửu bất quan đái,
// dần bất tế tự, mão bất xuyên tỉnh, thần bất khốc khấp, tị bất viễn hành,
// ngọ bất thiêm cái, vị bất phục dược, thân bất an sàng, dậu bất hội khách,
// tuất bất cật cẩu, hợi bất giá thú
