Exemplo n.º 1
0
        /// <summary>
        /// 年上取月干
        /// </summary>
        /// <param name="ng">年干</param>
        /// <param name="m1">农历月份</param>
        /// <returns>月干</returns>
        private TianGan GetMonthGanByYear(TianGanTypes ng, int m1) //年上取月干
        {
            int          m = Math.Abs(m1);
            TianGanTypes tg;

            if ((ng == TianGanTypes.Jia) || (ng == TianGanTypes.Ji))
            {
                tg = TianGanTypes.Bing;
            }
            else if ((ng == TianGanTypes.Yi) || (ng == TianGanTypes.Geng))
            {
                tg = TianGanTypes.Wu;
            }
            else if ((ng == TianGanTypes.Bing) || (ng == TianGanTypes.Xin))
            {
                tg = TianGanTypes.Geng;
            }
            else if ((ng == TianGanTypes.Ding) || (ng == TianGanTypes.Ren))
            {
                tg = TianGanTypes.Ren;
            }
            else
            {
                tg = TianGanTypes.Jia;
            }
            TianGan t = new TianGan(tg);

            return(t.Inc(m - 1));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 日上起时干
        /// </summary>
        /// <param name="rg">日干</param>
        /// <param name="sc">时辰</param>
        /// <returns>时干</returns>
        private TianGan GetTimeGan(TianGanTypes rg, DiZhiTypes sc)
        {
            int          sc1 = ((int)sc) - 1;
            TianGanTypes tg;

            if ((rg == TianGanTypes.Jia) || (rg == TianGanTypes.Ji))
            {
                tg = TianGanTypes.Jia;
            }
            else if ((rg == TianGanTypes.Yi) || (rg == TianGanTypes.Geng))
            {
                tg = TianGanTypes.Bing;
            }
            else if ((rg == TianGanTypes.Bing) || (rg == TianGanTypes.Xin))
            {
                tg = TianGanTypes.Wu;
            }
            else if ((rg == TianGanTypes.Ding) || (rg == TianGanTypes.Ren))
            {
                tg = TianGanTypes.Geng;
            }
            else
            {
                tg = TianGanTypes.Ren;
            }
            TianGan t = new TianGan(tg);

            return(t.Inc(sc1));
        }
Exemplo n.º 3
0
        private TianGan GetTimeGan(TianGanTypes rg, DiZhiTypes sc)
        {
            TianGanTypes jia;
            int          i = ((int)sc) - 1;

            if ((rg == TianGanTypes.Jia) || (rg == TianGanTypes.Ji))
            {
                jia = TianGanTypes.Jia;
            }
            else if ((rg == TianGanTypes.Yi) || (rg == TianGanTypes.Geng))
            {
                jia = TianGanTypes.Bing;
            }
            else if ((rg == TianGanTypes.Bing) || (rg == TianGanTypes.Xin))
            {
                jia = TianGanTypes.Wu;
            }
            else if ((rg == TianGanTypes.Ding) || (rg == TianGanTypes.Ren))
            {
                jia = TianGanTypes.Geng;
            }
            else
            {
                jia = TianGanTypes.Ren;
            }
            TianGan gan = new TianGan(jia);

            return(gan.Inc(i));
        }
Exemplo n.º 4
0
        private static string GetName(TianGanTypes atg)
        {
            string[] strArray = new string[] { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };
            int      num      = (int)atg;

            return(strArray[num - 1]);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 返回天干的中文名称
        /// </summary>
        /// <param name="atg">天干枚举值</param>
        /// <returns>天干的中文名称</returns>
        private static string GetName(TianGanTypes atg)
        {
            string[] s = { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };
            int      i = (int)atg;

            return(s[i - 1]);
        }
Exemplo n.º 6
0
        private TianGan GetMonthGanByYear(TianGanTypes ng, int m1)
        {
            TianGanTypes bing;
            int          num = Math.Abs(m1);

            if ((ng == TianGanTypes.Jia) || (ng == TianGanTypes.Ji))
            {
                bing = TianGanTypes.Bing;
            }
            else if ((ng == TianGanTypes.Yi) || (ng == TianGanTypes.Geng))
            {
                bing = TianGanTypes.Wu;
            }
            else if ((ng == TianGanTypes.Bing) || (ng == TianGanTypes.Xin))
            {
                bing = TianGanTypes.Geng;
            }
            else if ((ng == TianGanTypes.Ding) || (ng == TianGanTypes.Ren))
            {
                bing = TianGanTypes.Ren;
            }
            else
            {
                bing = TianGanTypes.Jia;
            }
            TianGan gan = new TianGan(bing);

            return(gan.Inc(num - 1));
        }
Exemplo n.º 7
0
 public TianGan(int aid)
 {
     int num = aid % 10;
     if (num > 0)
     {
         this.id = (TianGanTypes) num;
     }
     else if (num < 0)
     {
         this.id = (TianGanTypes) (10 + num);
     }
     else
     {
         this.id = TianGanTypes.Gui;
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="aid">天干的整数代码</param>
        public TianGan(int aid)
        {
            int i = aid % 10;

            if (i > 0)
            {
                this.id = (TianGanTypes)i;
            }
            else if (i < 0)
            {
                this.id = (TianGanTypes)(10 + i);
            }
            else
            {
                this.id = TianGanTypes.Gui;
            }
        }
Exemplo n.º 9
0
        public TianGan(int aid)
        {
            int num = aid % 10;

            if (num > 0)
            {
                this.id = (TianGanTypes)num;
            }
            else if (num < 0)
            {
                this.id = (TianGanTypes)(10 + num);
            }
            else
            {
                this.id = TianGanTypes.Gui;
            }
        }
Exemplo n.º 10
0
        private TianGanTypes inc(TianGanTypes atg, int i)
        {
            int num = i % 10;

            if (num == 0)
            {
                return(atg);
            }
            int num2 = ((int)atg) + num;

            if (num2 > 10)
            {
                num2 -= 10;
            }
            else if (num2 < 1)
            {
                num2 += 10;
            }
            return((TianGanTypes)num2);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 计算将天干加上i后的值
        /// </summary>
        /// <param name="atg">天干</param>
        /// <param name="i">要增加的数量</param>
        /// <returns>某一天干枚举增加i值后的天干</returns>
        private TianGanTypes inc(TianGanTypes atg, int i)
        {
            int j = i % 10;

            if (j == 0)
            {
                return(atg);
            }
            int tg = ((int)atg) + j;

            if (tg > 10)
            {
                tg = tg - 10;
            }
            else if (tg < 1)
            {
                tg = tg + 10;
            }
            return((TianGanTypes)tg);
        }
Exemplo n.º 12
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="atg">天干枚举</param>
 /// <param name="adz">地支枚举</param>
 public GanZhi(TianGanTypes atg, DiZhiTypes adz)
 {
     _tg = new TianGan(atg);
     _dz = new DiZhi(adz);
 }
Exemplo n.º 13
0
 private TianGan GetTimeGan(TianGanTypes rg, DiZhiTypes sc)
 {
     TianGanTypes jia;
     int i = ((int) sc) - 1;
     if ((rg == TianGanTypes.Jia) || (rg == TianGanTypes.Ji))
     {
         jia = TianGanTypes.Jia;
     }
     else if ((rg == TianGanTypes.Yi) || (rg == TianGanTypes.Geng))
     {
         jia = TianGanTypes.Bing;
     }
     else if ((rg == TianGanTypes.Bing) || (rg == TianGanTypes.Xin))
     {
         jia = TianGanTypes.Wu;
     }
     else if ((rg == TianGanTypes.Ding) || (rg == TianGanTypes.Ren))
     {
         jia = TianGanTypes.Geng;
     }
     else
     {
         jia = TianGanTypes.Ren;
     }
     TianGan gan = new TianGan(jia);
     return gan.Inc(i);
 }
Exemplo n.º 14
0
 private TianGan GetMonthGanByYear(TianGanTypes ng, int m1)
 {
     TianGanTypes bing;
     int num = Math.Abs(m1);
     if ((ng == TianGanTypes.Jia) || (ng == TianGanTypes.Ji))
     {
         bing = TianGanTypes.Bing;
     }
     else if ((ng == TianGanTypes.Yi) || (ng == TianGanTypes.Geng))
     {
         bing = TianGanTypes.Wu;
     }
     else if ((ng == TianGanTypes.Bing) || (ng == TianGanTypes.Xin))
     {
         bing = TianGanTypes.Geng;
     }
     else if ((ng == TianGanTypes.Ding) || (ng == TianGanTypes.Ren))
     {
         bing = TianGanTypes.Ren;
     }
     else
     {
         bing = TianGanTypes.Jia;
     }
     TianGan gan = new TianGan(bing);
     return gan.Inc(num - 1);
 }
Exemplo n.º 15
0
 public GanZhi(TianGanTypes atg, DiZhiTypes adz)
 {
     this._tg = new TianGan(atg);
     this._dz = new DiZhi(adz);
 }
Exemplo n.º 16
0
 public TianGan(TianGanTypes aid)
 {
     this.id = aid;
 }
Exemplo n.º 17
0
 public TianGan()
 {
     this.id = TianGanTypes.Jia;
 }
Exemplo n.º 18
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="aid">天干的枚举值</param>
 public TianGan(TianGanTypes aid)
 {
     id = aid;
 }
Exemplo n.º 19
0
 /// <summary>
 /// 构造函数,默认构造函数将类实例化为“甲”
 /// </summary>
 public TianGan()
 {
     id = TianGanTypes.Jia;
 }
Exemplo n.º 20
0
        /// <summary>
        /// 获取将当前天干加(减)指定数值后的天干
        /// </summary>
        /// <param name="i">加减数值</param>
        /// <returns>新天干实例</returns>
        public TianGan Inc(int i)
        {
            TianGanTypes tg = inc(id, i);

            return(new TianGan(tg));
        }
Exemplo n.º 21
0
 public TianGan()
 {
     this.id = TianGanTypes.Jia;
 }
Exemplo n.º 22
0
 private static string GetName(TianGanTypes atg)
 {
     string[] strArray = new string[] { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };
     int num = (int) atg;
     return strArray[num - 1];
 }
Exemplo n.º 23
0
 private TianGanTypes inc(TianGanTypes atg, int i)
 {
     int num = i % 10;
     if (num == 0)
     {
         return atg;
     }
     int num2 = ((int) atg) + num;
     if (num2 > 10)
     {
         num2 -= 10;
     }
     else if (num2 < 1)
     {
         num2 += 10;
     }
     return (TianGanTypes) num2;
 }
Exemplo n.º 24
0
 public TianGan(TianGanTypes aid)
 {
     this.id = aid;
 }