//
// Cát 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, FSD Trạch Nhật Học
//

// Lục Hợp (六合) [ DGTNH ]
// nghi: yến hội, kết hôn nhân, giá thú, tiến nhân khẩu, lập khế khoán, hợp giao dịch, nạp tài, nạp súc, an táng.
function lucHopChi(nn)
{
  var chi = DiaChi(nn);
  return (CHI[chiHop(chi)]);
}

// Tứ Tướng 四相 [ DGTNH ]
//   Xuân: Bính Đinh
//   Hạ:   Mậu Kỷ
//   Thu:  Nhâm Quí
//   Đông: Giáp Ất
// nghi tu doanh, khởi công, dưỡng dục, sanh tài, tài thực, chủng thời, dời chỗ (di chuyển), viễn hành
function tuTuong(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[2] || can==CAN[3]) k=1; break; // Xuân: Bính Đinh
  case 1: if (can==CAN[4] || can==CAN[5]) k=1; break; // Hạ:   Mậu Kỷ
  case 2: if (can==CAN[8] || can==CAN[9]) k=1; break; // Thu:  Nhâm Quí
  case 3: if (can==CAN[0] || can==CAN[1]) k=1; break; // Đông: Giáp Ất
  }

  return k;
}

// Thiên Ân 天恩 [ DGTNH, FSD, NHK ]
// thượng quan, thụ phong, tạo táng, hôn nhân, giá thú, bách sự tịnh cát
function thienAn(nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  if      (can==CAN[0] && chi==CHI[0] ) k=1; // Giáp Tý
  else if (can==CAN[1] && chi==CHI[1] ) k=1; // Ất Sửu
  else if (can==CAN[2] && chi==CHI[2] ) k=1; // Bính Dần
  else if (can==CAN[3] && chi==CHI[3] ) k=1; // Đinh Mão
  else if (can==CAN[4] && chi==CHI[4] ) k=1; // Mậu Thìn
  else if (can==CAN[5] && chi==CHI[3] ) k=1; // Kỷ Mão
  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[8] && chi==CHI[6] ) k=1; // Nhâm Ngọ
  else if (can==CAN[9] && chi==CHI[7] ) k=1; // Quí Mùi
  else if (can==CAN[5] && chi==CHI[9] ) k=1; // Kỷ Dậu
  else if (can==CAN[6] && chi==CHI[10]) k=1; // Canh Tuất
  else if (can==CAN[7] && chi==CHI[11]) k=1; // Tân Hợi
  else if (can==CAN[8] && chi==CHI[0] ) k=1; // Nhâm Tý
  else if (can==CAN[9] && chi==CHI[1] ) k=1; // Quí Sửu

  return k;
}

// Thiên Xá 天赦 [ DGTNH, NHK, PSD ]
// Cát Nhật: ngày can chi tương sinh, trời đất hòa thuận (Cát). Bách sự nghi dụng
function thienXa(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[4] || can==CAN[2]) k=1; break; // Xuân: Mậu Dần
  case 1: if (can==CAN[0] || can==CAN[6]) k=1; break; // Hạ:   Giáp Ngọ
  case 2: if (can==CAN[4] || can==CAN[8]) k=1; break; // Thu:  Mậu Thân
  case 3: if (can==CAN[0] || can==CAN[0]) k=1; break; // Đông: Giáp Tý
  }

  return k;
}

// Giải Thần 解神 [ DGTNH ]
// bách sự nghi dụng, nghi giải oan cừu, sơ thông ngục tụng
function giaiThan(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: case  2: if (chi==CHI[8])  k=1; break; // Thân
  case  3: case  4: if (chi==CHI[10]) k=1; break; // Tuất
  case  5: case  6: if (chi==CHI[0])  k=1; break; // Tý
  case  7: case  8: if (chi==CHI[2])  k=1; break; // Dần
  case  9: case 10: if (chi==CHI[4])  k=1; break; // Thìn
  case 11: case 12: if (chi==CHI[6])  k=1; break; // Ngọ
  }
  return k;
}

// Nguyệt Ân 月恩 [ DGTNH ]
// nghi doanh tạo, hôn nhân, di chuyển, tế tự, thượng quan, nạp tài 
// bách sự nghi dụng
function nguyetAn(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case  1: if (can == CAN[2]) k=1; break; // Bính
  case  2: if (can == CAN[3]) k=1; break; // Đinh
  case  3: if (can == CAN[6]) k=1; break; // Canh
  case  4: if (can == CAN[5]) k=1; break; // Kỷ
  case  5: if (can == CAN[4]) k=1; break; // Mậu
  case  6: if (can == CAN[7]) k=1; break; // Tân
  case  7: if (can == CAN[8]) k=1; break; // Nhâm
  case  8: if (can == CAN[9]) k=1; break; // Quí
  case  9: if (can == CAN[6]) k=1; break; // Canh
  case 10: if (can == CAN[1]) k=1; break; // Ất
  case 11: if (can == CAN[0]) k=1; break; // Giáp
  case 12: if (can == CAN[7]) k=1; break; // Tân
  }
  return k;
}

// Nguyệt Đức 月德 [ FSD, NHK, DGTNH ]
// nghi kì phúc, giá thú, nhập trạch, tạo trạch, đính hôn, tu tạo, an táng cát
function nguyetDuc(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case 9:  if (can==CAN[2]) k=1; break; // Bính
  case 2: case 6: case 10: if (can==CAN[0]) k=1; break; // Giáp
  case 3: case 7: case 11: if (can==CAN[8]) k=1; break; // Nhâm
  case 4: case 8: case 12: if (can==CAN[6]) k=1; break; // Canh
  }
  return k;
}

// Nguyệt Đức Hợp 月德合
// bách sự nghi dụng
function nguyetDucHop(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case 9:  if (can==CAN[7]) k=1; break; // Tân
  case 2: case 6: case 10: if (can==CAN[5]) k=1; break; // Kỷ
  case 3: case 7: case 11: if (can==CAN[3]) k=1; break; // Đinh
  case 4: case 8: case 12: if (can==CAN[1]) k=1; break; // Ất
  }
  return k;
}

// Nguyệt Không 月空 [ DGTNH, NHK ]
// nghi an sàng trướng, tu sản thất, động thổ 
function nguyetKhong(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case 9:  if (can==CAN[8]) k=1; break; // Nhâm
  case 2: case 6: case 10: if (can==CAN[6]) k=1; break; // Canh
  case 3: case 7: case 11: if (can==CAN[2]) k=1; break; // Bính
  case 4: case 8: case 12: if (can==CAN[0]) k=1; break; // Giáp
  }
  return k;
}

// Thiên Đức 天德 [ DCTYL, DGTNH, FSD ]
// nghi tu cung thất, thiện thành quách, kết hôn nhân, tiến nhân khẩu
function thienDuc(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  {
  case  1: if (can==CAN[3] ) k=1; break; // Đinh
  case  2: if (chi==CHI[8] ) k=1; break; // Thân (Khôn, DCTYL, NHK)
  case  3: if (can==CAN[8] ) k=1; break; // Nhâm
  case  4: if (can==CAN[7] ) k=1; break; // Tân
  case  5: if (chi==CHI[11]) k=1; break; // Hợi (Kiền, DCTYL, NHK)
  case  6: if (can==CAN[0] ) k=1; break; // Giáp
  case  7: if (can==CAN[9] ) k=1; break; // Quí
  case  8: if (chi==CHI[2] ) k=1; break; // Dần (Cấn, DCTYL, NHK)
  case  9: if (can==CAN[2] ) k=1; break; // Bính
  case 10: if (can==CAN[1] ) k=1; break; // Ất
  case 11: if (chi==CHI[5] ) k=1; break; // Tỵ (Tốn, DCTYL, NHK)
  case 12: if (can==CAN[6] ) k=1; break; // Canh
  }
  return k;
}

// Thiên Đức Hợp 天德合
// bách sự nghi dụng
function thienDucHop(t, nn) // t (tiết)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (can==CAN[8] ) k=1; break; // Nhâm
  case  2: if (chi==CHI[5] ) k=1; break; // Tỵ (Tốn, DCTYL, NHK)
  case  3: if (can==CAN[3] ) k=1; break; // Đinh
  case  4: if (can==CAN[2] ) k=1; break; // Bính
  case  5: if (chi==CHI[2] ) k=1; break; // Dần (Cấn, DCTYL, NHK)
  case  6: if (can==CAN[5] ) k=1; break; // Kỷ
  case  7: if (can==CAN[4] ) k=1; break; // Mậu
  case  8: if (chi==CHI[11]) k=1; break; // Hợi (Kiền, DCTYL, NHK)
  case  9: if (can==CAN[7] ) k=1; break; // Tân
  case 10: if (can==CAN[6] ) k=1; break; // Canh
  case 11: if (chi==CHI[8] ) k=1; break; // Thân (Khôn, DCTYL, NHK)
  case 12: if (can==CAN[1] ) k=1; break; // Ất
  }
  return k;
}

// Mẫu Thương 母仓 [ DGTNH ]
// nghi nạp tài, tài chủng, mục dưỡng (chăn nuôi), nạp súc
function mauThuong(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[0] || chi==CHI[11]) k=1; break; // Xuân: Tý, Hợi
  case 1: if (chi==CHI[2] || chi==CHI[3]) k=1; break; // Hạ: Dần, Mão
  case 2: if (chi==CHI[4] || chi==CHI[10] || chi==CHI[1] || chi==CHI[7]) k=1; break; // Thu:  Thìn Tuất Sửu Mùi
  case 3: if (chi==CHI[8] || chi==CHI[9]) k=1; break; // Đông: Thân, Dậu
  }

  return k;
}

// Nguyệt Chi, a local function
function layNCV(nc)
{
  var NC = [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1];
  return NC[nc];
}

// Tam Hợp 三合
// bách sự nghi dụng
function tamHop(t, nn) // t (tiết) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var r = layNCV(t-1);
  var h3 = chi3Hop(CHI[r]);
  for (var i=0; i < h3.length; i++)
  {
    if (h3[i]!=r) {
      if (CHI[h3[i]]==chi) return 1;
    }
  }

  return 0;
}

// Thời Đức 時德 [ DGTNH ]
// nghi khánh tứ, yến nhạc, bái quan, thưởng hạ
function thoiDuc(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[6]) k=1; break; // Xuân: Ngọ
  case 1: if (chi==CHI[4]) k=1; break; // Hạ: Thìn
  case 2: if (chi==CHI[0]) k=1; break; // Thu: Tý
  case 3: if (chi==CHI[2]) k=1; break; // Đông: Dần
  }

  return k;
}

// Ngũ Hợp 五合 [ DGTNH ]
// Nghi kết hôn nhân, tối nghi giá thú, hội thân hữu, lập khoán giao dịch
function nguHop(nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;
  if (chi==CHI[2]) k=1; // Dần
  else if (chi==CHI[3]) k=1; // Mão
  return k;
}

// Ngũ Phú 五富 [ DGTNH ]
// nghi khai thị, lập khoán, giao dịch, nạp tài, khai thương khố, xuất hóa tài, tài chủng, mục dưỡng, nạp súc
// nạp súc, mục dưỡng, nạp súc, di cư, nhập trạch
function nguPhu(t, nn) // t (tiết)
{
  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[2])  k=1; break; // Dần
  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;
}

// Lục Hợp 六合 [ DGTNH ]
// bách sự nghi dụng
function lucHop(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var r = layNCV(t-1);
  var h6 = chiHop(CHI[r]);
  var h=0;

  if (CHI[h6] == chi) h = 1;

  return h;
}

// Lâm Nhật 臨日 [ DGTNH ]
// nghi thượng sách, tiến biểu chương, thượng quan phó nhậm, lâm chánh thân dân, trần từ tụng 
function lamNhat(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[6])  k=1; break; // Ngọ
  case  2: if (chi==CHI[11]) k=1; break; // Hợi
  case  3: if (chi==CHI[8])  k=1; break; // Thân
  case  4: if (chi==CHI[1])  k=1; break; // Sửu
  case  5: if (chi==CHI[10]) k=1; break; // Tuất
  case  6: if (chi==CHI[3])  k=1; break; // Mão
  case  7: if (chi==CHI[0])  k=1; break; // Tý
  case  8: if (chi==CHI[5])  k=1; break; // Tỵ
  case  9: if (chi==CHI[2])  k=1; break; // Dần
  case 10: if (chi==CHI[7])  k=1; break; // Mùi
  case 11: if (chi==CHI[4])  k=1; break; // Thìn
  case 12: if (chi==CHI[9])  k=1; break; // Dậu
  }
  return k;
}

// Dịch Mã 驛馬 = Thiên Hậu 天后 [ DGTNH-4 ]
// nghi xuất hành, tạo táng, xuất quân, viễn hành, liệu bệnh, phục dược, bách sự đại cát
// nghi cầu y liệu bệnh, kì phúc, lễ thần
// Thiên Hậu nghi cầu y liệu bệnh, kì phúc, lễ thần
function dichMa(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case 5: case 9:  if (chi==CHI[8])  k=1; break; // Thân
  case 2: case 6: case 10: if (chi==CHI[5])  k=1; break; // Tỵ
  case 3: case 7: case 11: if (chi==CHI[2])  k=1; break; // Dần
  case 4: case 8: case 12: if (chi==CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Thanh Long Hoàng Đạo 青龍黃道 [ DGTNH ]
// Thanh Long Hoàng Đạo: thiên ất tinh, thiên quý tinh, lợi hữu du vãng, sở tác tất thành, sở cầu giai đắc. 
//   nghi kì phúc, giá thú, đính hôn, tạo trạch, tạo táng, bách sự giai cát.
function thanhLong(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi==CHI[0])  k=1; break; // Tý
  case 2: case  8: if (chi==CHI[2])  k=1; break; // Dần
  case 3: case  9: if (chi==CHI[4])  k=1; break; // Thìn
  case 4: case 10: if (chi==CHI[6])  k=1; break; // Ngọ
  case 5: case 11: if (chi==CHI[8])  k=1; break; // Thân
  case 6: case 12: if (chi==CHI[10]) k=1; break; // Tuất
  }
  return k;
}

// Minh Đường Hoàng Đạo 明堂黃道 [ DGTNH ]
// Minh Đường Hoàng Đạo: quý nhân tinh, minh phụ tinh, lợi kiến đại nhân, lợi hữu du vãng, phạ tác tất thành. 
//    nghi thượng quan, an sàng, an táo, tu trạch, tạo trạch, nhập trạch cát.
function minhDuong(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case 1: case  7: if (chi==CHI[1])  k=1; break; // Sửu
  case 2: case  8: if (chi==CHI[3])  k=1; break; // Mão
  case 3: case  9: if (chi==CHI[5])  k=1; break; // Tỵ
  case 4: case 10: if (chi==CHI[7])  k=1; break; // Mùi
  case 5: case 11: if (chi==CHI[9])  k=1; break; // Dậu
  case 6: case 12: if (chi==CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Kim Quỹ Hoàng Đạo 金匱黃道 [ DGTNH ]
// Kim quỹ hoàng đạo: phúc đức tinh, nguyệt tiên tinh, lợi thích đạo dụng sự, hôn giả nữ tử dụng sự, cát. 
// Kim Quỹ nghi tu trạch, tạo trạch, đính hôn, giá thú, cầu tự, nhập trạch, khai thị cát
function kimQuy(t, nn) // t (tiết)
{
  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[6])  k=1; break; // Ngọ
  case 3: case  9: if (chi==CHI[8])  k=1; break; // Thân
  case 4: case 10: if (chi==CHI[10]) k=1; break; // Tuất
  case 5: case 11: if (chi==CHI[0])  k=1; break; // Tý
  case 6: case 12: if (chi==CHI[2])  k=1; break; // Dần
  }
  return k;
}

// Thiên Đức Hoàng Đạo 天德黃道
// Thiên Đức Hoàng Đạo: bảo quang tinh, thiên đức tinh, kì thời đại quách, tác sự hữu thành, 
// lợi hữu du vãng, xuất hành cát, tu tác bách sự cát
function thienDucHD(t, nn) // t (tiết)
{
  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[7])  k=1; break; // Mùi
  case 3: case  9: if (chi==CHI[9])  k=1; break; // Dậu
  case 4: case 10: if (chi==CHI[11]) k=1; break; // Hợi
  case 5: case 11: if (chi==CHI[1])  k=1; break; // Sửu
  case 6: case 12: if (chi==CHI[3])  k=1; break; // Mão
  }
  return k;
}

// Ngọc Đường Hoàng Đạo (玉堂黃道)
// Ngọc Đường Hoàng Đạo: thiếu vi tinh, thiên khai tinh, bách sự cát, cầu sự thành, xuất hành hữu tài, 
// nghi tu trạch, tạo trạch, an sàng, khai thương, tác táo, nhập trạch cát. 
function ngocDuong(t, nn) // t (tiết)
{
  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[9])  k=1; break; // Dậu
  case 3: case  9: if (chi==CHI[11]) k=1; break; // Hợi
  case 4: case 10: if (chi==CHI[1])  k=1; break; // Sửu
  case 5: case 11: if (chi==CHI[3])  k=1; break; // Mão
  case 6: case 12: if (chi==CHI[5])  k=1; break; // Tỵ
  }
  return k;
}

// Tư Mệnh Hoàng Đạo 司命黃道 = Dương Đức 陽德
// Tư Mệnh nghi khởi tạo, tu tác, tu táo, tạo táo, tự táo, thụ phong cát lợi.
//   với dương đức nghi tạo tác, giá thú, thượng quan, nhập trạch, xuất hành
function tuMenh(t, nn) // t (tiết)
{
  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[0])  k=1; break; // Tý
  case 3: case  9: if (chi==CHI[2])  k=1; break; // Dần
  case 4: case 10: if (chi==CHI[4])  k=1; break; // Thìn
  case 5: case 11: if (chi==CHI[6])  k=1; break; // Ngọ
  case 6: case 12: if (chi==CHI[8])  k=1; break; // Thân
  }
  return k;
}

// Minh Phệ 鳴吠 [ TCHB = DGTNH ]
// lợi an táng: vong linh an ổn, con cháu giàu thịnh
function minhPhe(nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  if      (can==CAN[6] && chi==CHI[6]) k=1; // Canh Ngọ
  else if (can==CAN[8] && chi==CHI[8]) k=1; // Nhâm Thân
  else if (can==CAN[9] && chi==CHI[9]) k=1; // Quí Dậu
  else if (can==CAN[8] && chi==CHI[6]) k=1; // Nhâm Ngọ
  else 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[6] && chi==CHI[2]) k=1; // Canh Dần
  else if (can==CAN[2] && chi==CHI[8]) k=1; // Bính Thân
  else if (can==CAN[3] && chi==CHI[9]) k=1; // Đinh Dậu
  else if (can==CAN[8] && chi==CHI[2]) k=1; // Nhâm Dần
  else if (can==CAN[2] && chi==CHI[6]) k=1; // Bính Ngọ
  else if (can==CAN[5] && chi==CHI[9]) k=1; // Kỷ Dậu
  else if (can==CAN[6] && chi==CHI[8]) k=1; // Canh Thân
  else if (can==CAN[7] && chi==CHI[9]) k=1; // Tân Dậu

  return k;
}

// Minh Phệ Đối 鳴吠對 [ TCHB = DGTNH ]
// lợi an táng
function minhPheDoi(nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  if      (can==CAN[2] && chi==CHI[2]) k=1; // Bính Dần
  else if (can==CAN[3] && chi==CHI[3]) k=1; // Đinh Mão
  else if (can==CAN[2] && chi==CHI[0]) k=1; // Bính Tý
  else if (can==CAN[7] && chi==CHI[7]) k=1; // Tân Mão
  else if (can==CAN[0] && chi==CHI[6]) k=1; // Giáp Ngọ
  else if (can==CAN[6] && chi==CHI[0]) k=1; // Canh Tý
  else if (can==CAN[9] && chi==CHI[3]) k=1; // Quí Mão
  else if (can==CAN[8] && chi==CHI[0]) k=1; // Nhâm Tý
  else if (can==CAN[0] && chi==CHI[2]) k=1; // Giáp Dần
  else if (can==CAN[1] && chi==CHI[3]) k=1; // Ất Mão

  return k;
}

// Vương Nhật 王日 = Phúc Hậu 福厚
// nghi: ban chiếu, đàm ân, tứ xá, thi ân phong bái, chiếu mệnh công khanh, chiêu hiền, cử chánh trực, thi ân huệ, tuyên chánh sự,
// hành huệ ái, tuyết oan uổng, hoãn hình ngục, thưởng hạ, yến hội, hành hạnh, khiển sử, an phủ biên cảnh, tuyển tương huấn binh,
// thượng quan phó nhâm, lâm chánh thân dân, tài chế 
function vuongNhat(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[2] ) k=1; break; // Xuân: Dần
  case 1: if (chi==CHI[5] ) k=1; break; // Hạ: Tỵ
  case 2: if (chi==CHI[8] ) k=1; break; // Thu: Thân
  case 3: if (chi==CHI[11]) k=1; break; // Đông: Hợi
  }

  return k;
}

// Vượng Nhật 旺日 [ Res ]
// bách sự cát, nghi khai trương, khởi tạo, giá thú
function vuongNhat100(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[0] || can==CAN[1]) k=1;
     else if (chi==CHI[2] || chi==CHI[3]) k=1; // xuân giáp ất dần mão
     break;
  case 1: if (can==CAN[2] || can==CAN[3]) k=1;
     else if (chi==CHI[5] || chi==CHI[6]) k=1; // hạ bính đinh tị ngọ
     break;
  case 2: if (can==CAN[6] || can==CAN[7]) k=1
     else if (chi==CHI[8] || chi==CHI[9]) k=1; // thu canh tân thân dậu
     break;
  case 3: if (can==CAN[6] || can==CAN[7]) k=1
     else if (chi==CHI[0] || chi==CHI[11]) k=1; // đông nhâm quý hợi tý
     break;
  }

  return k;
}

// Quan Nhật 官日 = Thiên Quả 天寡 (hung nhật) [ DGTNH ]
// thượng quan phó nhâm, lâm chánh thân dân, tài chế 
// nghi thụ phong, thượng quan phó nhậm, lâm chánh thân dân (bách sự bất nghi)
// tác táo. 
function quanNhat(T, nn) // T (0...3) & nn: lunar.dd
{
  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[1]) k=1; break; // Đông Tý
  }

  return k;
}

// Thủ Nhật 守日  [ DGTNH ]
// nghi thụ phong, thượng quan phó nhâm, lâm chánh thân dân, an phủ biên cảnh.
function thuNhat(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[9]) k=1; break; // Xuân Dậu
  case 1: if (chi==CHI[1]) k=1; break; // Hạ Tý
  case 2: if (chi==CHI[3]) k=1; break; // Thu Mão
  case 3: if (chi==CHI[6]) k=1; break; // Đông Ngọ
  }

  return k;
}

// Tướng Nhật 相日 [ DGTNH ]
// nghi thụ phong, thượng quan phó nhâm, lâm chánh thân dân, giá thú
function tuongNhat(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[5] ) k=1; break; // Xuân Tỵ
  case 1: if (chi==CHI[8] ) k=1; break; // Hạ Thân
  case 2: if (chi==CHI[11]) k=1; break; // Thu Hợi
  case 3: if (chi==CHI[2] ) k=1; break; // Đông Dần
  }

  return k;
}

// Dân Nhật 民日 [ DGTNH ]
// nghi yến hội, kết hôn nhân, nạp thải vấn danh, tiến nhân khẩu, bàn di, khai thị, lập khoán, giao dịch, nạp tài, tài chủng, mục dưỡng, nạp súc 
function danNhat(T, nn) // T (0...3) & nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;

  switch(T) {
  case 0: if (chi==CHI[6]) k=1; break; // Xuân Ngọ
  case 1: if (chi==CHI[9]) k=1; break; // Hạ Dậu
  case 2: if (chi==CHI[0]) k=1; break; // Thu Tý
  case 3: if (chi==CHI[3]) k=1; break; // Đông Mão
  }

  return k;
}

// Cát Kỳ 吉期 = trực Trừ [ DGTNH ]
//   mão thìn tị ngọ mùi thân dậu tuất hợi tý sửu dần
// nghi xuất quân, hành sư, công thành trại, hưng điếu phạt, hội nhân thân 
function catKyNhat(t, truc, nn) // t (tiết)
{
  var tru = CHI[(t+2)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Trừ'==TRUC12[truc] && (chi==tru)) k=1;

  return k;
}

// Phúc Đức 福德 = trực Mãn (đồng hành) = Thiên Phú 天富 = Thiên Vu 天巫 = Thiên Cẩu 天狗 (NHK, DGTNH)
// nghi cầu phúc nguyện, tu cung thất, hiến phong chương, hợp dược, thỉnh y
// Thiên Phú: nghi khai điếm, tạo thương khố, thượng quan, xuất tài, nạp lễ, cầu tài, tài y, hợp trướng
// Thiên Vu: nghi hợp dược, thỉnh y, tự quỷ thần, cầu phúc nguyện
// Thiên Cẩu: kị giá thú, sanh sản
function phucDuc(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;
}

// Thời Âm 時陰 = trực Định 定 = Quan Phù 官符  (kỵ nhật) = Tử Khí 死氣 (kỵ nhật)
// nghi vận mưu toán, họa kế sách, mục tử tôn, hội thân hữu
// bách sự nghi dụng
function thoiAm(t, truc, nn) // t (tiết)
{
  var dinh = CHI[(t+5)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Định'==TRUC12[truc] && (chi==dinh)) k=1;

  return k;
}

// Chi Đức 枝德 [ DGTNH ]
// bách sự nghi dụng 
function chiDuc(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;
}

// Thiên Y 天醫 = Thiên Hỷ 天喜 = trực Thành 成 = Thiên Hùng 天雄 (hung nhật)
// thiên y nhật khả dĩ cầu y, trị bệnh, phục dược, châm cứu 
// thiên hỉ: bách sự nghi dụng
// thiên hùng kị giá thú
function thienY(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;
}

// Thời Dương 時陽 = Sinh Khí 生氣 = trực Khai 開
// Thời Dương nghi tự hôn nhân, hành yến nhạc
// Sinh Khí nghi phong bái, thượng quan, khởi tạo, động thổ, giá thú, cầu tài 
function thoiDuong(t, truc, nn) // t (tiết)
{
  var khai = CHI[(t+11)%12];
  var chi = DiaChi(nn);
  var k=0;

  if ('Khai'==TRUC12[truc] && (chi==khai)) k=1;

  return k;
}

// Thiên Mã 天馬 = Bạch Hổ 白虎 (hung tinh) [ DGTNH ]
// nghi bái công khanh, trạch hiền lương, tuyên bố chánh sự, viễn hành, xuất chinh
// nghi xuất hành, di cư, nhập trạch, khai thị, cầu tài, doanh thương cát
function thienMa(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;
}

// Yếu Yên (An) 要安 [ DGTNH ]
// nghi khởi tạo, tác sự, cầu tài, thượng quan, di cư, cập giá thú, an táng, xuất hành, liệu bệnh, bách sự đại cát
function yeuYen(t, nn) // t (tiết)
{
  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[8])  k=1; break; // Thân
  case  3: if (chi==CHI[3])  k=1; break; // Mão
  case  4: if (chi==CHI[9])  k=1; break; // Dậu
  case  5: if (chi==CHI[4])  k=1; break; // Thìn
  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[11]) k=1; break; // Hợi
  case  9: if (chi==CHI[6])  k=1; break; // Ngọ
  case 10: if (chi==CHI[0])  k=1; break; // Tý
  case 11: if (chi==CHI[7])  k=1; break; // Mùi
  case 12: if (chi==CHI[1])  k=1; break; // Sửu
  }
  return k;
}

// Kính An 敬安 = Kính Tâm 敬心 [ DGTNH ]
// nghi an thần, mục thân tộc, tự tôn ti, nạp lễ nghi, hành khánh tứ 
// nghi tế tự, tự thần, trai tiếu (ăn chay), kì phúc, hứa nguyện đại cát 
function kinhAn(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[7])  k=1; break; // Mùi
  case  2: if (chi==CHI[1])  k=1; break; // Sửu
  case  3: if (chi==CHI[8])  k=1; break; // Thân
  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[3])  k=1; break; // Mão
  case  7: if (chi==CHI[10]) k=1; break; // Tuất
  case  8: if (chi==CHI[4])  k=1; break; // Thìn
  case  9: if (chi==CHI[11]) k=1; break; // Hợi
  case 10: if (chi==CHI[5])  k=1; break; // Tỵ
  case 11: if (chi==CHI[0])  k=1; break; // Tý
  case 12: if (chi==CHI[6])  k=1; break; // Ngọ
  }
  return k;
}

// Phổ Hộ 普護 [ DGTNH ]
// nghi tế tự, tế tự, kì phúc, đảo từ (cầu cúng, cúng tế), tầm y tị bệnh
function phoHo(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[8])  k=1; break; // Thân
  case  2: if (chi==CHI[2])  k=1; break; // Dần
  case  3: if (chi==CHI[9])  k=1; break; // Dậu
  case  4: if (chi==CHI[3])  k=1; break; // Mão
  case  5: if (chi==CHI[10]) k=1; break; // Tuất
  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[5])  k=1; break; // Tỵ
  case  9: if (chi==CHI[0])  k=1; break; // Tý
  case 10: if (chi==CHI[6])  k=1; break; // Ngọ
  case 11: if (chi==CHI[1])  k=1; break; // Sửu
  case 12: if (chi==CHI[7])  k=1; break; // Mùi
  }
  return k;
}

// Phúc Sinh 福生 [ DGTNH ]
// nghi tế tự, kì phúc, cầu ân, tự thần trí tế
function phucSinh(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[9])  k=1; break; // Dậu
  case  2: if (chi==CHI[3])  k=1; break; // Mão
  case  3: if (chi==CHI[10]) k=1; break; // Tuất
  case  4: if (chi==CHI[4])  k=1; break; // Thìn
  case  5: if (chi==CHI[11]) k=1; break; // Hợi
  case  6: if (chi==CHI[5])  k=1; break; // Tỵ
  case  7: if (chi==CHI[0])  k=1; break; // Tý
  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[7])  k=1; break; // Mùi
  case 11: if (chi==CHI[2])  k=1; break; // Dần
  case 12: if (chi==CHI[8])  k=1; break; // Thân
  }
  return k;
}

// Thánh Tâm 聖心 [ DGTN ]
// nghi tế tự, kì phúc, thượng biểu chương, hành ân trạch, doanh bách sự
function thanhTam(t, nn) // t (tiết)
{
  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[5])  k=1; break; // Tỵ
  case  3: if (chi==CHI[0])  k=1; break; // Tý
  case  4: if (chi==CHI[6])  k=1; break; // Ngọ
  case  5: if (chi==CHI[1])  k=1; break; // Sửu
  case  6: if (chi==CHI[7])  k=1; break; // Mùi
  case  7: if (chi==CHI[2])  k=1; break; // Dần
  case  8: if (chi==CHI[8])  k=1; break; // Thân
  case  9: if (chi==CHI[3])  k=1; break; // Mão
  case 10: if (chi==CHI[9])  k=1; break; // Dậu
  case 11: if (chi==CHI[4])  k=1; break; // Thìn
  case 12: if (chi==CHI[10]) k=1; break; // Tuất
  }
  return k;
}

// Ích Hậu 益後 [ DGTN ]
// nghi tế tự, kì phúc, cầu tự, tạo trạch xá, trúc viên tường, hành giá thú, an sản thất 
function ichHau(t, nn) // t (tiết)
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi==CHI[0])  k=1; break; // Tý
  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[7])  k=1; break; // Mùi
  case  5: if (chi==CHI[2])  k=1; break; // Dần
  case  6: if (chi==CHI[8])  k=1; break; // Thân
  case  7: if (chi==CHI[3])  k=1; break; // Mão
  case  8: if (chi==CHI[9])  k=1; break; // Dậu
  case  9: if (chi==CHI[4])  k=1; break; // Thìn
  case 10: if (chi==CHI[10]) k=1; break; // Tuất
  case 11: if (chi==CHI[5])  k=1; break; // Tỵ
  case 12: if (chi==CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Tục Thế 續世 = Huyết Kị 血忌 (hung tinh) [ DGTNH ]
// nghi kết hôn nhân, lập tự, mục thân tộc, tự thần kì, cầu tự tục
function tucThe(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;
}

// Thiên Nguyện 天願 [ DGTNH ]
// nghi tế tự, kì phúc, cầu tự, trai tiếu (chay), giá thú, đính hôn, hưng tu, tu phần, tạo táng cát
function thienNguyen(t, nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  { // lịch lệ:
  case  1: if (can==CAN[1] && chi==CHI[11] ) k=1; break; // ất hợi 
  case  2: if (can==CAN[0] && chi==CHI[10]) k=1; break; // Giáp Tuất
  case  3: if (can==CAN[1] && chi==CHI[9] ) k=1; break; // Ất Dậu
  case  4: if (can==CAN[2] && chi==CHI[8] ) k=1; break; // bính thân
  case  5: if (can==CAN[3] && chi==CHI[7] ) k=1; break; // đinh mùi
  case  6: if (can==CAN[4] && chi==CHI[6] ) k=1; break; // Mậu Ngọ
  case  7: if (can==CAN[5] && chi==CHI[5] ) k=1; break; // kỷ tị
  case  8: if (can==CAN[6] && chi==CHI[4] ) k=1; break; // canh thìn
  case  9: if (can==CAN[7] && chi==CHI[3] ) k=1; break; // Tân Mão
  case 10: if (can==CAN[8] && chi==CHI[2] ) k=1; break; // nhâm dần
  case 11: if (can==CAN[9] && chi==CHI[1] ) k=1; break; // quý sửu
  case 12: if (can==CAN[0] && chi==CHI[0] ) k=1; break; // giáp tý
  }
  return k;
}

// Lục Nghi 六儀 [ DGTNH ] = Chiêu Diêu 招搖 (hung tinh)
// nghi mục dưỡng, sanh tài, tài thực thụ mộc, kết thân nạp lễ, thị sự lâm quan
// bách sự nghi dụng
function lucNghi(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[3])  k=1; break; // Mão
  case  3: if (chi == CHI[2])  k=1; break; // Dần
  case  4: if (chi == CHI[1])  k=1; break; // Sửu
  case  5: if (chi == CHI[0])  k=1; break; // Tý
  case  6: if (chi == CHI[11]) k=1; break; // Hợi
  case  7: if (chi == CHI[10]) k=1; break; // Tuất
  case  8: if (chi == CHI[9])  k=1; break; // Dậu
  case  9: if (chi == CHI[8])  k=1; break; // Thân
  case 10: if (chi == CHI[7])  k=1; break; // Mùi
  case 11: if (chi == CHI[6])  k=1; break; // Ngọ
  case 12: if (chi == CHI[5])  k=1; break; // Tỵ
  }
  return k;
}

// Thiên Thương (thảng) 天倉 [ DGTNH ]
// nghi tạo thương khố, nạp tài
function thienThuong(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[1])  k=1; break; // Sửu
  case  3: if (chi == CHI[0])  k=1; break; // Tý
  case  4: if (chi == CHI[11]) k=1; break; // Hợi
  case  5: if (chi == CHI[10]) k=1; break; // Tuất
  case  6: if (chi == CHI[9])  k=1; break; // Dậu
  case  7: if (chi == CHI[8])  k=1; break; // Thân
  case  8: if (chi == CHI[7])  k=1; break; // Mùi
  case  9: if (chi == CHI[6])  k=1; break; // Ngọ
  case 10: if (chi == CHI[5])  k=1; break; // Tỵ
  case 11: if (chi == CHI[4])  k=1; break; // Thìn
  case 12: if (chi == CHI[3])  k=1; break; // Mão
  }
  return k;
}

// Bất Tướng 不將 [ DGTNH-13 ]
// nghi giá thú, đính hôn
function batTuong(t, nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  {
  case 1:
    if      (can==CAN[7] && chi==CHI[11]) k=1; // tân hợi
    else if (can==CAN[7] && chi==CHI[1] ) k=1; // tân sửu
    else if (can==CAN[7] && chi==CHI[2] ) k=1; // tân mão
    else if (can==CAN[6] && chi==CHI[0] ) k=1; // canh tý
    else if (can==CAN[6] && chi==CHI[2] ) k=1; // canh dần
    else if (can==CAN[5] && chi==CHI[11]) k=1; // kỷ hợi
    else if (can==CAN[5] && chi==CHI[1] ) k=1; // kỷ sửu
    else if (can==CAN[5] && chi==CHI[3] ) k=1; // kỷ mão
    else if (can==CAN[3] && chi==CHI[11]) k=1; // đinh hợi
    else if (can==CAN[3] && chi==CHI[1] ) k=1; // đinh sửu
    else if (can==CAN[3] && chi==CHI[3] ) k=1; // đinh mão
    else if (can==CAN[2] && chi==CHI[0] ) k=1; // bính tý
    else if (can==CAN[2] && chi==CHI[2] ) k=1; // bính dần
    break;
  case 2:
    if      (can==CAN[7] && chi==CHI[11]) k=1; // canh tuất
    else if (can==CAN[6] && chi==CHI[0] ) k=1; // canh tý
    else if (can==CAN[6] && chi==CHI[2] ) k=1; // canh dần
    else if (can==CAN[5] && chi==CHI[11]) k=1; // kỷ hợi
    else if (can==CAN[5] && chi==CHI[1] ) k=1; // kỷ sửu
    else if (can==CAN[3] && chi==CHI[11]) k=1; // đinh hợi
    else if (can==CAN[3] && chi==CHI[1] ) k=1; // đinh sửu
    else if (can==CAN[2] && chi==CHI[10]) k=1; // bính tuất
    else if (can==CAN[2] && chi==CHI[0] ) k=1; // bính tý
    else if (can==CAN[2] && chi==CHI[2] ) k=1; // bính dần
    else if (can==CAN[1] && chi==CHI[11]) k=1; // ất hợi
    else if (can==CAN[1] && chi==CHI[1])  k=1; // ất sửu
    break;
  case 3:
    if      (can==CAN[5] && chi==CHI[9] ) k=1; // kỷ dậu
    else if (can==CAN[5] && chi==CHI[11]) k=1; // kỷ hợi
    else if (can==CAN[5] && chi==CHI[1] ) k=1; // kỷ sửu
    else if (can==CAN[3] && chi==CHI[9] ) k=1; // đinh dậu
    else if (can==CAN[3] && chi==CHI[11]) k=1; // đinh hợi
    else if (can==CAN[3] && chi==CHI[1] ) k=1; // đinh sửu
    else if (can==CAN[2] && chi==CHI[10]) k=1; // bính tuất
    else if (can==CAN[2] && chi==CHI[0] ) k=1; // bính tý
    else if (can==CAN[1] && chi==CHI[9] ) k=1; // ất dậu
    else if (can==CAN[1] && chi==CHI[11]) k=1; // ất hợi
    else if (can==CAN[1] && chi==CHI[1])  k=1; // ất sửu
    else if (can==CAN[0] && chi==CHI[10]) k=1; // giáp tuất
    else if (can==CAN[0] && chi==CHI[0] ) k=1; // giáp tý
    break;
  case 4:
    if      (can==CAN[3] && chi==CHI[9] ) k=1; // đinh dậu
    else if (can==CAN[3] && chi==CHI[11]) k=1; // đinh hợi
    else if (can==CAN[2] && chi==CHI[8] ) k=1; // bính thân
    else if (can==CAN[2] && chi==CHI[10]) k=1; // bính tuất
    else if (can==CAN[2] && chi==CHI[0] ) k=1; // bính tý
    else if (can==CAN[1] && chi==CHI[9] ) k=1; // ất dậu
    else if (can==CAN[1] && chi==CHI[11]) k=1; // ất hợi
    else if (can==CAN[0] && chi==CHI[8] ) k=1; // giáp thân
    else if (can==CAN[0] && chi==CHI[10]) k=1; // giáp tuất
    else if (can==CAN[0] && chi==CHI[0] ) k=1; // giáp tý
    else if (can==CAN[4] && chi==CHI[8] ) k=1; // mậu thân
    else if (can==CAN[4] && chi==CHI[10]) k=1; // mậu tuất
    else if (can==CAN[4] && chi==CHI[0] ) k=1; // mậu tý
    break;
  case 5:
    if      (can==CAN[2] && chi==CHI[8] ) k=1; // bính thân
    else if (can==CAN[2] && chi==CHI[10]) k=1; // bính tuất
    else if (can==CAN[1] && chi==CHI[7] ) k=1; // ất mùi
    else if (can==CAN[1] && chi==CHI[9] ) k=1; // ất dậu
    else if (can==CAN[1] && chi==CHI[11]) k=1; // ất hợi
    else if (can==CAN[0] && chi==CHI[8] ) k=1; // giáp thân
    else if (can==CAN[0] && chi==CHI[10]) k=1; // giáp tuất
    else if (can==CAN[4] && chi==CHI[8] ) k=1; // mậu thân
    else if (can==CAN[4] && chi==CHI[10]) k=1; // mậu tuất
    else if (can==CAN[4] && chi==CHI[0] ) k=1; // mậu tý
    else if (can==CAN[9] && chi==CHI[7] ) k=1; // quý mùi
    else if (can==CAN[9] && chi==CHI[9] ) k=1; // quý dậu
    else if (can==CAN[9] && chi==CHI[11]) k=1; // quý hợi
    break;
  case 6:
    if      (can==CAN[1] && chi==CHI[7] ) k=1; // ất mùi
    else if (can==CAN[1] && chi==CHI[9] ) k=1; // ất dậu
    else if (can==CAN[0] && chi==CHI[6] ) k=1; // giáp ngọ
    else if (can==CAN[0] && chi==CHI[8] ) k=1; // giáp thân
    else if (can==CAN[0] && chi==CHI[10]) k=1; // giáp tuất
    else if (can==CAN[4] && chi==CHI[6] ) k=1; // mậu ngọ
    else if (can==CAN[4] && chi==CHI[8] ) k=1; // mậu thân
    else if (can==CAN[4] && chi==CHI[10]) k=1; // mậu tuất
    else if (can==CAN[9] && chi==CHI[7] ) k=1; // quý mùi
    else if (can==CAN[9] && chi==CHI[9] ) k=1; // quý dậu
    else if (can==CAN[8] && chi==CHI[6] ) k=1; // nhâm ngọ
    else if (can==CAN[8] && chi==CHI[8] ) k=1; // nhâm thân
    else if (can==CAN[8] && chi==CHI[10]) k=1; // nhâm tuất
    break;
  case 7:
    if      (can==CAN[1] && chi==CHI[5] ) k=1; // ất tị
    else if (can==CAN[1] && chi==CHI[7] ) k=1; // ất mùi
    else if (can==CAN[1] && chi==CHI[9] ) k=1; // ất dậu
    else if (can==CAN[0] && chi==CHI[6] ) k=1; // giáp ngọ
    else if (can==CAN[0] && chi==CHI[8] ) k=1; // giáp thân
    else if (can==CAN[4] && chi==CHI[6] ) k=1; // mậu ngọ
    else if (can==CAN[4] && chi==CHI[8] ) k=1; // mậu thân
    else if (can==CAN[9] && chi==CHI[5] ) k=1; // quý tị
    else if (can==CAN[9] && chi==CHI[7] ) k=1; // quý mùi
    else if (can==CAN[9] && chi==CHI[9] ) k=1; // quý dậu
    else if (can==CAN[8] && chi==CHI[6] ) k=1; // nhâm ngọ
    else if (can==CAN[8] && chi==CHI[8] ) k=1; // nhâm thân
    break;
  case 8:
    if      (can==CAN[0] && chi==CHI[4] ) k=1; // giáp thìn
    else if (can==CAN[0] && chi==CHI[6] ) k=1; // giáp ngọ
    else if (can==CAN[0] && chi==CHI[8] ) k=1; // giáp thân
    else if (can==CAN[4] && chi==CHI[4] ) k=1; // mậu thìn
    else if (can==CAN[4] && chi==CHI[6] ) k=1; // mậu ngọ
    else if (can==CAN[4] && chi==CHI[8] ) k=1; // mậu thân
    else if (can==CAN[9] && chi==CHI[5] ) k=1; // quý tị
    else if (can==CAN[9] && chi==CHI[7] ) k=1; // quý mùi
    else if (can==CAN[8] && chi==CHI[4] ) k=1; // nhâm thìn
    else if (can==CAN[8] && chi==CHI[6] ) k=1; // nhâm ngọ
    else if (can==CAN[8] && chi==CHI[8] ) k=1; // nhâm thân
    else if (can==CAN[7] && chi==CHI[5] ) k=1; // tân tị
    else if (can==CAN[7] && chi==CHI[7] ) k=1; // tân mùi
    break;
  case 9:
    if      (can==CAN[4] && chi==CHI[4] ) k=1; // mậu thìn
    else if (can==CAN[4] && chi==CHI[6] ) k=1; // mậu ngọ
    else if (can==CAN[9] && chi==CHI[3] ) k=1; // quý mão
    else if (can==CAN[9] && chi==CHI[5] ) k=1; // quý tị
    else if (can==CAN[9] && chi==CHI[7] ) k=1; // quý mùi
    else if (can==CAN[8] && chi==CHI[4] ) k=1; // nhâm thìn
    else if (can==CAN[8] && chi==CHI[6] ) k=1; // nhâm ngọ
    else if (can==CAN[7] && chi==CHI[3] ) k=1; // tân mão
    else if (can==CAN[7] && chi==CHI[5] ) k=1; // tân tị
    else if (can==CAN[7] && chi==CHI[7] ) k=1; // tân mùi
    else if (can==CAN[6] && chi==CHI[4] ) k=1; // canh thìn
    else if (can==CAN[6] && chi==CHI[6] ) k=1; // canh ngọ
    break;
  case 10:
    if      (can==CAN[9] && chi==CHI[3] ) k=1; // quý mão
    else if (can==CAN[9] && chi==CHI[5] ) k=1; // quý tị
    else if (can==CAN[8] && chi==CHI[2] ) k=1; // nhâm dần
    else if (can==CAN[8] && chi==CHI[4] ) k=1; // nhâm thìn
    else if (can==CAN[8] && chi==CHI[6] ) k=1; // nhâm ngọ
    else if (can==CAN[7] && chi==CHI[3] ) k=1; // tân mão
    else if (can==CAN[7] && chi==CHI[5] ) k=1; // tân tị
    else if (can==CAN[6] && chi==CHI[2] ) k=1; // canh dần
    else if (can==CAN[6] && chi==CHI[4] ) k=1; // canh thìn
    else if (can==CAN[6] && chi==CHI[6] ) k=1; // canh ngọ
    else if (can==CAN[5] && chi==CHI[3] ) k=1; // kỷ mão
    else if (can==CAN[5] && chi==CHI[5] ) k=1; // kỷ tị
    break;
  case 11:
    if      (can==CAN[8] && chi==CHI[2] ) k=1; // nhâm dần
    else if (can==CAN[8] && chi==CHI[4] ) k=1; // nhâm thìn
    else if (can==CAN[7] && chi==CHI[1] ) k=1; // tân sửu
    else if (can==CAN[7] && chi==CHI[3] ) k=1; // tân mão
    else if (can==CAN[7] && chi==CHI[5] ) k=1; // tân tị
    else if (can==CAN[6] && chi==CHI[2] ) k=1; // canh dần
    else if (can==CAN[6] && chi==CHI[4] ) k=1; // canh thìn
    else if (can==CAN[5] && chi==CHI[1] ) k=1; // kỷ sửu
    else if (can==CAN[5] && chi==CHI[3] ) k=1; // kỷ mão
    else if (can==CAN[5] && chi==CHI[5] ) k=1; // kỷ tị
    else if (can==CAN[3] && chi==CHI[1] ) k=1; // đinh sửu
    else if (can==CAN[3] && chi==CHI[3] ) k=1; // đinh mão
    else if (can==CAN[3] && chi==CHI[5] ) k=1; // đinh tị
    break;
  case 12:
    if      (can==CAN[7] && chi==CHI[1] ) k=1; // tân sửu
    else if (can==CAN[7] && chi==CHI[3] ) k=1; // tân mão
    else if (can==CAN[6] && chi==CHI[0] ) k=1; // canh tý
    else if (can==CAN[6] && chi==CHI[2] ) k=1; // canh dần
    else if (can==CAN[6] && chi==CHI[4] ) k=1; // canh thìn
    else if (can==CAN[5] && chi==CHI[1] ) k=1; // kỷ sửu
    else if (can==CAN[5] && chi==CHI[3] ) k=1; // kỷ mão
    else if (can==CAN[3] && chi==CHI[1] ) k=1; // đinh sửu
    else if (can==CAN[3] && chi==CHI[3] ) k=1; // đinh mão
    else if (can==CAN[2] && chi==CHI[0] ) k=1; // bính tý
    else if (can==CAN[2] && chi==CHI[2] ) k=1; // bính dần
    else if (can==CAN[2] && chi==CHI[4] ) k=1; // bính thìn
    break;
  }
  return k;
}

// Nguyệt Tài 月財 [ DGTNH, Res ]
// nghi chiêu tài, khởi tạo, khai điếm, xuất hành, di chuyển, di đồ, khai thị, khai thương, cầu tài, tạo táng cát
function nguyetTai(t, nn) // nn: lunar.dd
{
  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[5])  k=1; break; // Tỵ
  case 3: case  9: if (chi==CHI[5])  k=1; break; // Tỵ
  case 4: case 10: if (chi==CHI[7])  k=1; break; // Mùi
  case 5: case 11: if (chi==CHI[9])  k=1; break; // Dậu
  case 6: case 12: if (chi==CHI[11]) k=1; break; // Hợi
  }
  return k;
}

// Minh Tinh 明星 [ Res ] = Thiên Nhạc 天岳 [ DGTNH-10 ]
// Minh Tinh nghi cầu danh, bái sư học nghệ, phó nhậm
// Thiên Nhạc nghi tạo táng, hưng tu; bách sự giai cát 
function minhTinh(t, nn) // nn: lunar.dd
{
  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;
}

// Thiên Quý 天貴 = Thôi Quan 催官 [ DGTNH ]
// Bách sự dụng nhật
function thienQuy(T, nn) // T (0...3) & nn: lunar.dd
{
  var can = ThienCan(nn);
  var k=0;

  switch(T) {
  case 0: if (can==CAN[0] || can==CAN[1]) k=1; break; // Xuân: Giáp Ất
  case 1: if (can==CAN[2] || can==CAN[3]) k=1; break; // Hạ:   Bính Đinh
  case 2: if (can==CAN[6] || can==CAN[7]) k=1; break; // Thu:  Canh Tân
  case 3: if (can==CAN[8] || can==CAN[9]) k=1; break; // Đông: Nhâm Quý
  }

  return k;
}

// Thiên Thành 天成 [ DGTNH-KMDGKỳThư-7 ]
// thiên thành nhật mùi dậu hợi sửu mão tị mùi dậu hợi sửu mão tị
// nghi thất nghi gia, hội thân hữu
function thienThanh(t, nn) // t (tiết)
{
  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[9] ) k=1; break; // Dậu
  case 3: case  9: if (chi==CHI[11]) k=1; break; // Hợi
  case 4: case 10: if (chi==CHI[1] ) k=1; break; // Sửu
  case 5: case 11: if (chi==CHI[3] ) k=1; break; // Mão
  case 6: case 12: if (chi==CHI[5] ) k=1; break; // Tỵ
  }
  return k;
}

// Âm Đức 陰德 [ DGTNH ]
// nghi kiến tiếu (lập đàn cầu cúng), tế tự
function amDuc(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ần Tại 神在 [ DGTNH ]
// nghi tế tự, cầu phúc phản họa, cầu tài, 
function thanTai(nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(canVi(can)) {
  case 0:
    if      (chi==CHI[0]) k=1; // giáp tý
    else if (chi==CHI[6]) k=1; // giáp ngọ
    else if (chi==CHI[8]) k=1; // giáp thân
    else if (chi==CHI[10]) k=1; // giáp tuất
    break;
  case 1:
    if      (chi==CHI[1]) k=1; // ất sửu 
    else if (chi==CHI[3]) k=1; // ất mão
    else if (chi==CHI[5]) k=1; // ất tị
    else if (chi==CHI[7]) k=1; // ất mùi
    else if (chi==CHI[9]) k=1; // ất dậu
    break;
  case 2:
    if      (chi==CHI[4]) k=1; // bính thìn
    else if (chi==CHI[6]) k=1; // bính ngọ
    else if (chi==CHI[8]) k=1; // bính thân
    else if (chi==CHI[10]) k=1; // bính tuất
    break;
  case 3:
    if      (chi==CHI[1]) k=1; // đinh sửu 
    else if (chi==CHI[3]) k=1; // đinh mão
    else if (chi==CHI[5]) k=1; // đinh tị
    else if (chi==CHI[7]) k=1; // đinh mùi
    else if (chi==CHI[9]) k=1; // đinh dậu
    else if (chi==CHI[11]) k=1; // đinh hợi
    break;
  case 4:
    if      (chi==CHI[4]) k=1; // mậu thìn
    else if (chi==CHI[6]) k=1; // mậu ngọ
    else if (chi==CHI[8]) k=1; // mậu thân
    break;
  case 5:
    if      (chi==CHI[1]) k=1; // kỷ sửu 
    else if (chi==CHI[3]) k=1; // kỷ mão
    else if (chi==CHI[5]) k=1; // kỷ tị
    else if (chi==CHI[7]) k=1; // kỷ mùi
    else if (chi==CHI[9]) k=1; // kỷ dậu
    break;
  case 6:
    if      (chi==CHI[4]) k=1; // canh thìn
    else if (chi==CHI[6]) k=1; // canh ngọ
    break;
  case 7:
    if      (chi==CHI[3]) k=1; // tân mão
    else if (chi==CHI[7]) k=1; // tân mùi
    else if (chi==CHI[9]) k=1; // tân dậu
    break;
  case 8:
    if      (chi==CHI[6]) k=1; // nhâm ngọ
    else if (chi==CHI[8]) k=1; // nhâm thân
    break;
  case 9:
    if      (chi==CHI[9]) k=1; // quý dậu
    else if (chi==CHI[11]) k=1; // quý hợi
    break;
  }
  return k;
}

// Thiên Phúc 天福 [ DGTNH-29 ]
// nghi thượng quan, thượng nhậm, nhập trạch, tống lễ, xuất hành, bách sự cát
function thienPhuc(nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  if      (can==CAN[1] && chi==CHI[5]) k=1; // ất tị
  else if (can==CAN[3] && chi==CHI[5]) k=1; // đinh tị
  else if (can==CAN[5] && chi==CHI[3]) k=1; // kỷ mão
  else if (can==CAN[5] && chi==CHI[11]) k=1; // kỷ hợi
  else if (can==CAN[6] && chi==CHI[0]) k=1; // canh tý
  else if (can==CAN[6] && chi==CHI[2]) k=1; // canh dần
  else if (can==CAN[6] && chi==CHI[8]) k=1; // canh thân
  else if (can==CAN[7] && chi==CHI[1]) k=1; // tân sửu
  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ị

  return k;
}

// Thiên Quan 天官 [ Res ]
// nghi thượng quan phó nhậm
function thienQuan(t, nn) // nn: lunar.dd
{
  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[0] ) k=1; break; // tý 
  case 3: case  9: if (chi == CHI[2] ) k=1; break; // dần 
  case 4: case 10: if (chi == CHI[4] ) k=1; break; // thìn 
  case 5: case 11: if (chi == CHI[6] ) k=1; break; // ngọ 
  case 6: case 12: if (chi == CHI[8] ) k=1; break; // thân 
  }
  return k;
}

// Hiển, Khúc, Phó Tinh. A local function
function tinhHienKhucPho(gia, can, chi)
{
  var g = gia;
  var j;
  var f=0;
  for (var i=0; i<7; i++) {
    j = g + i*9;
    if (j >= 60) break;
    if (can==ThienCan(j) && chi==DiaChi(j)) f=1; break;
  }
  return f;
}

// Hiển Tinh 顯星 [ DGTNH-17,34 ]
// hiển, khúc, phó tinh: nghi tạo táng, tu doanh, tham yết, thượng quan phó nhậm, khoa cử, nhập học, giá thú, bách sự đại cát.
function hienTinh(t, nn)
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(t)
  {
  case 1: case 4: case 7: case 10: k=tinhHienKhucPho(3, can, chi); break;
  case 2: case 5: case 8: case 11: k=tinhHienKhucPho(2, can, chi); break;
  case 3: case 6: case 9: case 12: k=tinhHienKhucPho(1, can, chi); break;
  }
  return k;
}

// Thất Thánh 七聖 [ DGTNH ]
// nghi tế tự, trai tiếu, kì phúc, hứa nguyện đại cát
function thatThanh(nn) // nn: lunar.dd
{
  var can = ThienCan(nn);
  var chi = DiaChi(nn);
  var k=0;

  switch(canVi(can)) {
  case 0:
    if      (chi==CHI[2]) k=1; // giáp dần
    else if (chi==CHI[4]) k=1; // giáp thìn
    else if (chi==CHI[6]) k=1; // giáp ngọ
    else if (chi==CHI[8]) k=1; // giáp thân
    else if (chi==CHI[10]) k=1; // giáp tuất
    break;
  case 1:
    if      (chi==CHI[3]) k=1; // ất mão
    else if (chi==CHI[5]) k=1; // ất tị
    else if (chi==CHI[7]) k=1; // ất mùi
    else if (chi==CHI[9]) k=1; // ất dậu
    else if (chi==CHI[11]) k=1; // ất hợi
    break;
  case 2:
    if      (chi==CHI[0]) k=1; // bính tý
    else if (chi==CHI[2]) k=1; // bính dần
    break;
  case 3:
    if      (chi==CHI[1]) k=1; // đinh sửu
    else if (chi==CHI[3]) k=1; // đinh mão
    break;
  case 4:
    if      (chi==CHI[0]) k=1; // mậu tý
    else if (chi==CHI[4]) k=1; // mậu thìn
    else if (chi==CHI[6]) k=1; // mậu ngọ
    else if (chi==CHI[8]) k=1; // mậu thân
    else if (chi==CHI[10]) k=1; // mậu tuất
    break;
  case 5:
    if      (chi==CHI[1]) k=1; // kỷ sửu
    else if (chi==CHI[5]) k=1; // kỷ tị
    else if (chi==CHI[7]) k=1; // kỷ mùi
    else if (chi==CHI[9]) k=1; // kỷ dậu
    else if (chi==CHI[11]) k=1; // kỷ hợi
    break;
  case 6:
    if      (chi==CHI[2]) k=1; // canh dần
    else if (chi==CHI[4]) k=1; // canh thìn
    else if (chi==CHI[8]) k=1; // canh thân
    else if (chi==CHI[10]) k=1; // canh tuất
    break;
  case 7:
    if      (chi==CHI[2]) k=1; // tân mão
    else if (chi==CHI[5]) k=1; // tân tị
    else if (chi==CHI[9]) k=1; // tân dậu
    break;
  case 8:
    if      (chi==CHI[0]) k=1; // nhâm tý
    else if (chi==CHI[2]) k=1; // nhâm dần
    else if (chi==CHI[8]) k=1; // nhâm thân
    break;
  case 9:
    if      (chi==CHI[1]) k=1; // quý sửu
    else if (chi==CHI[3]) k=1; // quý mão
    else if (chi==CHI[9]) k=1; // quý dậu
    break;
  }
  return k;
}

// Tuế Đức 歲德 [ DGTNH ]
// nghi thượng quan, biểu tiến sớ
function tueDuc(nien, nn)
{
  var nc = TueCanVi(nien); // Niên Can
  var can = ThienCan(nn);
  var k=0;

  switch(nc)
  {
  case 0: case 5: if (can==CAN[0]) k=1; break; // giáp 
  case 1: case 6: if (can==CAN[6]) k=1; break; // canh 
  case 2: case 7: if (can==CAN[2]) k=1; break; // bính 
  case 3: case 8: if (can==CAN[8]) k=1; break; // nhâm 
  case 4: case 9: if (can==CAN[4]) k=1; break; // mậu 
  }
  return k;
}

// Tuế Đức Hợp 歲德合 [ DGTNH ]
// nghi thượng quan, biểu tiến sớ
function tueDucHop(nien, nn)
{
  var nc = TueCanVi(nien); // Niên Can
  var can = ThienCan(nn);
  var k=0;

  switch(nc)
  {
  case 0: case 5: if (can==CAN[5]) k=1; break; // kỷ 
  case 1: case 6: if (can==CAN[1]) k=1; break; // ất 
  case 2: case 7: if (can==CAN[7]) k=1; break; // tân 
  case 3: case 8: if (can==CAN[3]) k=1; break; // đinh 
  case 4: case 9: if (can==CAN[9]) k=1; break; // quý
  }
  return k;
}

// Mãn Đức 滿德 [ DGTNH-17 ]
//   vạn thông tứ cát, kị Thụ Tử đồng nhật (nghi vạn sự cát lợi, thụ tử đồng nhật tắc hung)
function manDuc(t, nn) // nn: lunar.dd
{
  var chi = DiaChi(nn);
  var k=0;
  switch(t)
  {
  case  1: if (chi == CHI[6])  k=1; break; // ngọ
  case  2: if (chi == CHI[11]) k=1; break; // hợi
  case  3: if (chi == CHI[8])  k=1; break; // thân
  case  4: if (chi == CHI[1])  k=1; break; // sửu
  case  5: if (chi == CHI[10]) k=1; break; // tuất
  case  6: if (chi == CHI[3])  k=1; break; // mão
  case  7: if (chi == CHI[0])  k=1; break; // tý
  case  8: if (chi == CHI[5])  k=1; break; // tỵ
  case  9: if (chi == CHI[2])  k=1; break; // dần 
  case 10: if (chi == CHI[7])  k=1; break; // mùi
  case 11: if (chi == CHI[4])  k=1; break; // thìn
  case 12: if (chi == CHI[9])  k=1; break; // dậu 
 }
  return k;
}

// Trừ Thần 除神 [ DGTNH ] = Ngũ Ly 五離 
// nghi giải trừ, cầu y liệu bệnh 
function truThan(nn)
{
  var chi = DiaChi(nn);
  var k=0;
  if (chi==CHI[8] || chi==CHI[9]) k=1; // Thân, Dậu
  return k;
}

