Exemplo n.º 1
0
 /// <summary>
 /// Crea una instancia de una fecha Maya en el 0.0.0.0.0 4 Ajaw 8 Cumku
 /// </summary>
 public Date()
 {
     this.Correlation = 584283; // Constante de correlacion GMT (Goodman, Martinez, Thompson)
     this.Day         = 13;
     this.Month       = 8;
     this.Year        = 3114;
     this.Era         = Era.BeforeCrist;
     this.Baktun      = 0;
     this.Katun       = 0;
     this.Tun         = 0;
     this.Uinal       = 0;
     this.Kin         = 0;
     this.Tzolkin     = new Tzolkin();
     this.Haab        = new Haab();
 }
Exemplo n.º 2
0
        /// <summary>
        /// Calcula la fecha del calendario civil a la que es equivalente la fecha Maya instanciada.
        /// </summary>
        private void ComputeHaabDate()
        {
            int totalDays = (this.Kin * 1) + (this.Uinal * 20) + (this.Tun * 360) + (this.Katun * 7200) + (this.Baktun * 144000);

            // Pero como el 0.0.0.0.0 inicia en 8 Cumku, y el 8 Cumku sería el día número 349 del
            // Haab, entonces se le suman los 349 dias al total de días de la cuenta larga para
            // lograr la equivalencia.

            totalDays += 349;

            int yearDay = totalDays % 365;

            int montDay = (yearDay % 20) - 1;

            int month = IntPart((yearDay) / 20) + 1;

            this.Haab = new Haab(montDay, (Uinal)month);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Crea una instancia de una fecha Maya en la cuenta larga indicada.
        /// </summary>
        /// <param name="baktun">Baktun en la fecha Maya.</param>
        /// <param name="katun">Katun en la fecha Maya.</param>
        /// <param name="tun">Tun en la fecha Maya.</param>
        /// <param name="uinal">Uinal en la fecha Maya.</param>
        /// <param name="kin">Kin en la fecha Maya.</param>
        public Date(int baktun, int katun, int tun, int uinal, int kin)
            : this()
        {
            if (baktun > 19 || baktun < 0)
            {
                throw new ArgumentOutOfRangeException("baktun", string.Format(Resources.ArgumentOutOfRangeException_Message, "baktun", 0, 19));
            }
            if (katun > 19 || katun < 0)
            {
                throw new ArgumentOutOfRangeException("katun", string.Format(Resources.ArgumentOutOfRangeException_Message, "katun", 0, 19));
            }
            if (tun > 19 || tun < 0)
            {
                throw new ArgumentOutOfRangeException("tun", string.Format(Resources.ArgumentOutOfRangeException_Message, "tun", 0, 19));
            }
            if (uinal > 19 || uinal < 0)
            {
                throw new ArgumentOutOfRangeException("uinal", string.Format(Resources.ArgumentOutOfRangeException_Message, "uinal", 0, 19));
            }
            if (kin > 19 || kin < 0)
            {
                throw new ArgumentOutOfRangeException("kin", string.Format(Resources.ArgumentOutOfRangeException_Message, "kin", 0, 19));
            }

            // Si se especifican todos los parametros a cero, se dejan
            // los valores asignados por el constructor por defecto.
            if (baktun + katun + tun + uinal + kin == 0)
            {
                return;
            }

            this.Baktun = baktun;
            this.Katun  = katun;
            this.Tun    = tun;
            this.Uinal  = uinal;
            this.Kin    = kin;

            this.Tzolkin = new Tzolkin(3, KinName.Kawak);
            this.Haab    = new Haab(2, UinalName.Kankin);

            this.ComputeGregorianDate();
            this.ComputeHaabDate();
            this.ComputeTzolkinDate();
        }