public void StartOfMonthShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 26 );
     var expected = new DateTime( 2013, 3, 1 );
     var actual = date.StartOfMonth();
     Assert.Equal( expected.Date, actual.Date );
 }
 public void StartOfMonthWithCalendarShouldReturnExpectedResult()
 {
     var date = new DateTime( 2013, 3, 26 );
     var calendar = new GregorianFiscalCalendar( 7 );
     var expected = new DateTime( 2013, 3, 1 );
     var actual = date.StartOfMonth( calendar );
     Assert.Equal( expected.Date, actual.Date );
 }
示例#3
0
 /// <summary>
 /// creates a new msMonth object for the month containing the date
 /// </summary>
 /// <param name="date">date within the month</param>
 public MsMonth(DateTime date)
 {
     #if NET20
     StartDate = MsDateHelpers.StartOfMonth(date);
     EndDate = MsDateHelpers.EndOfMonth(date);
     #else
     StartDate = date.StartOfMonth();
     EndDate = date.EndOfMonth();
     #endif
 }
        protected DateTime? FromMonthRelation(string relation, int month, DateTime now, bool isUpperLimit) {
            switch (relation) {
                case "this": {
                    var start = now.Month == month ? now.StartOfMonth() : now.Month < month ? now.StartOfMonth().ChangeMonth(month) : now.StartOfMonth().AddYears(1).ChangeMonth(month);
                    return isUpperLimit ? start.EndOfMonth() : start;
                }
                case "last":
                case "past":
                case "previous": {
                    var start = now.Month > month ? now.StartOfMonth().ChangeMonth(month) : now.StartOfMonth().SubtractYears(1).ChangeMonth(month);
                    return isUpperLimit ? start.EndOfMonth() : start;
                }
                case "next": {
                    var start = now.Month < month ? now.StartOfMonth().ChangeMonth(month) : now.StartOfMonth().AddYears(1).ChangeMonth(month);
                    return isUpperLimit ? start.EndOfMonth() : start;
                }
            }

            return null;
        }
        protected DateTimeRange FromMonthRelation(string relation, int month, DateTime now) {
            switch (relation) {
                case "this": {
                    var start = now.Month == month ? now.StartOfMonth() : now.Month < month ? now.StartOfMonth().ChangeMonth(month) : now.StartOfMonth().AddYears(1).ChangeMonth(month);
                    return new DateTimeRange(start, start.EndOfMonth());
                }
                case "last":
                case "past":
                case "previous": {
                    var start = now.Month > month ? now.StartOfMonth().ChangeMonth(month) : now.StartOfMonth().SubtractYears(1).ChangeMonth(month);
                    return new DateTimeRange(start, start.EndOfMonth());
                }
                case "next": {
                    var start = now.Month < month ? now.StartOfMonth().ChangeMonth(month) : now.StartOfMonth().AddYears(1).ChangeMonth(month);
                    return new DateTimeRange(start, start.EndOfMonth());
                }
            }

            return null;
        }
示例#6
0
        public void TestStartOfMonth() {
            var wellKnownMonth1 = new DateTime(2009, 2, 11);
            var startOfWellKnownMonth1 = new DateTime(2009, 2, 1);
            var wellKnownMonth2 = new DateTime(2007, 10, 20);
            var startOfWellKnownMonth2 = new DateTime(2007, 10, 1);

            Assert.IsTrue(wellKnownMonth1.StartOfMonth().Equals(startOfWellKnownMonth1));
            Assert.IsTrue(wellKnownMonth2.StartOfMonth().Equals(startOfWellKnownMonth2));
            Assert.IsFalse(wellKnownMonth1.StartOfMonth().Equals(startOfWellKnownMonth2));
            Assert.IsFalse(wellKnownMonth2.StartOfMonth().Equals(startOfWellKnownMonth1));
        }
示例#7
0
        /// <summary>
        /// Returns the end of the month
        /// </summary>
        public static DateTime EndOfMonth(this DateTime value)
        {
            var start = value.StartOfMonth();

            return(start.AddMonths(1).AddDays(-1));
        }
示例#8
0
 public void StartOfMonth__The_Start_Of_A_Month_Can_Be_Obtained()
 {
     var date = new DateTime(2000, 1, 31, 4, 4, 4);
     date = date.StartOfMonth();
     Assert.IsTrue(date == new DateTime(2000, 1, 1));
 }
示例#9
0
        public static DateTime StartOfMonth( this Calendar calendar, DateTime date )
        {
            Arg.NotNull( calendar, nameof( calendar ) );
            Contract.Ensures( calendar.GetYear( Contract.Result<DateTime>() ) == Contract.OldValue( calendar.GetYear( date ) ) );
            Contract.Ensures( calendar.GetMonth( Contract.Result<DateTime>() ) == Contract.OldValue( calendar.GetMonth( date ) ) );

            return date.StartOfMonth( calendar );
        }
        public void StartOfMonth()
        {
            var start = new DateTime(2011, 1, 1);
            Assert.AreEqual(start, start.StartOfMonth());
            Assert.AreEqual(start, start.AddDays(2).StartOfMonth());
            Assert.AreEqual(start, start.AddDays(28).StartOfMonth());
            Assert.AreEqual(start, new DateTime(2011, 1, 31).StartOfMonth());

            Assert.AreNotEqual(start, start.AddMonths(1).StartOfMonth());
            Assert.AreNotEqual(start, start.AddMonths(-1).StartOfMonth());
        }