Ejemplo n.º 1
0
        public Date(int day, int month, int year)
        {
            day   = Math.Abs(day);
            month = Math.Abs(month);

start:

            if (month > 12)
            {
                year++;
                month -= 12;
                goto start;
            }

            MonthNumber n = (MonthNumber)month;

            if (day > DaysInMonths[n.ToString()])
            {
                month++;
                day -= DaysInMonths[n.ToString()];
                goto start;
            }

            this.Day   = day;
            this.Month = month;
            this.Year  = year;
        }
Ejemplo n.º 2
0
        public override int GetHashCode()
        {
            int hashCode = 378801229;

            hashCode = hashCode * -1521134295 + Year.GetHashCode();
            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Segment);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Country);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Product);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(DiscountBand);

            hashCode = hashCode * -1521134295 + UnitsSold.GetHashCode();
            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(ManufacturingPrice);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(SalePrice);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(GrossSales);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Discounts);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Sales);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(COGS);

            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(Profit);

            hashCode = hashCode * -1521134295 + Date.GetHashCode();
            hashCode = hashCode * -1521134295 + MonthNumber.GetHashCode();
            hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(MonthName);

            return(hashCode);
        }
Ejemplo n.º 3
0
        public FiscalMonth DeepCloneWithMonthNumber(MonthNumber monthNumber)
        {
            var result = new FiscalMonth(
                this.Year.DeepClone(),
                monthNumber);

            return(result);
        }
Ejemplo n.º 4
0
        public GenericMonth DeepCloneWithMonthNumber(MonthNumber monthNumber)
        {
            var result = new GenericMonth(
                this.Year.DeepClone(),
                monthNumber);

            return(result);
        }
Ejemplo n.º 5
0
        public void TestMonth(string minValue, string maxValue, string rangeStart, string rangeEnd)
        {
            var calculator = _host.Services.GetRequiredService <IRangeCalculator>();

            calculator.Evaluate(DateTime.Parse(minValue), DateTime.Parse(maxValue));

            calculator.Alternatives.Should().NotBeEmpty();

            var bestFit = calculator.Alternatives.BestByInactiveRegions();

            bestFit.Should().NotBeNull();

            bestFit !.RangeStart.Should().Be(MonthNumber.GetMonthNumber(rangeStart));
            bestFit !.RangeEnd.Should().Be(MonthNumber.GetMonthNumber(rangeEnd));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GenericMonth"/> class.
        /// </summary>
        /// <param name="year">The year.</param>
        /// <param name="monthNumber">The month number.</param>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="year"/> is less than 1 or greater than 9999.</exception>
        /// <exception cref="ArgumentException"><paramref name="monthNumber"/> is invalid.</exception>
        public GenericMonth(
            int year,
            MonthNumber monthNumber)
        {
            if ((year < 1) || (year > 9999))
            {
                throw new ArgumentOutOfRangeException(nameof(year), Invariant($"year ({year}) is less than 1 or greater than 9999"));
            }

            if (monthNumber == MonthNumber.Invalid)
            {
                throw new ArgumentException("month is invalid", nameof(monthNumber));
            }

            this.Year        = year;
            this.MonthNumber = monthNumber;
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GenericMonth"/> class.
        /// </summary>
        /// <param name="year">The year.</param>
        /// <param name="monthNumber">The month number.</param>
        /// <exception cref="ArgumentOutOfRangeException"><paramref name="year"/> is less than 1 or greater than 9999.</exception>
        /// <exception cref="ArgumentException"><paramref name="monthNumber"/> is invalid.</exception>
        public GenericMonth(
            int year,
            MonthNumber monthNumber)
        {
            if (year < 1)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(year)}' < '{1}'"), (Exception)null);
            }

            if (year > 9999)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(year)}' > '{9999}'"), (Exception)null);
            }

            if (monthNumber == MonthNumber.Invalid)
            {
                throw new ArgumentOutOfRangeException(Invariant($"'{nameof(monthNumber)}' == '{MonthNumber.Invalid}'"), (Exception)null);
            }

            this.Year        = year;
            this.MonthNumber = monthNumber;
        }
Ejemplo n.º 8
0
 public override string ToString() =>
 MonthNumber.ToString();