Пример #1
0
        public WorkYear(int year, WorkDayParserSettings parserSettings, int hitListLookBackInWeeks, float hoursPerDay, PNSearchViewModel pnSearch, PositionSearchViewModel positionSearch)
        {
            this.hitListLookBackInWeeks = hitListLookBackInWeeks;
            this.pnSearch = pnSearch;
            this.positionSearch = positionSearch;
            this.Year = year;
            this.Months = new ObservableCollection<WorkMonth>();
            this.Weeks = new ObservableCollection<WorkWeek>();

            var germanSpecialDays = SpecialDaysUtils.GetGermanSpecialDays(year);

            var cal = new GregorianCalendar();
            for (int month = 1; month <= cal.GetMonthsInYear(year); month++)
            {
                WorkMonth wm = new WorkMonth(year, month, germanSpecialDays, parserSettings, hoursPerDay);
                this.Months.Add(wm);
                foreach (var workWeek in wm.Weeks)
                {
                    this.Weeks.Add(workWeek);
                    workWeek.PropertyChanged += this.workWeek_PropertyChanged;
                }
            }
            this.ProjectHitlist = new QuickFillObservableCollection<HitlistInfo>();
            this.PositionHitlist = new QuickFillObservableCollection<HitlistInfo>();
            this.UpdateProjectHitlistAsync();
            this.UpdatePositionHitlistAsync();
        }
Пример #2
0
    public static SqlInt32 FN_GER_GetWeekOfYear(SqlDateTime _date)
    {
        System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();


        return(_date.IsNull ? SqlInt32.Null : gc.GetWeekOfYear(_date.Value, System.Globalization.CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday));
    }
Пример #3
0
        public static int EncodeDate(DateTime d)
        {
            int day, month, year;
            int c, ya;

            GregorianCalendar calendar = new GregorianCalendar();

            day = calendar.GetDayOfMonth(d);
            month = calendar.GetMonth(d);
            year = calendar.GetYear(d);

            if (month > 2)
            {
                month -= 3;
            }
            else
            {
                month += 9;
                year -= 1;
            }

            c = year / 100;
            ya = year - 100 * c;

            return ((146097 * c) / 4 + (1461 * ya) / 4 + (153 * month + 2) / 5 + day + 1721119 - 2400001);
        }
 public void PosTest1()
 {
     System.Globalization.Calendar tc = new TaiwanCalendar();
     System.Globalization.Calendar gc = new GregorianCalendar();
     DateTime desiredDT = gc.ToDateTime(1912, 1, 1, 0, 0, 0, 0);
     Assert.Equal(desiredDT, tc.MinSupportedDateTime);
 }
Пример #5
0
        /// <summary>
        /// Returns false only if all fields for the range has availability set to false
        /// </summary>
        /// <remarks>
        /// This method is useful to checking un-availability, as it will return true if there is any availability in a date range
        /// </remarks>        
        /// <param name="availability">The record to check</param>
        /// <param name="fromDayOfYear">From which Day Of Year</param>
        /// <param name="toDayOfYear">OPTIONAL: to which Day Of Year, last day in sequence will not be checked will not be checked</param>
        /// <returns>True if any of the rooms in the range specified is available otherwise false</returns>
        public static bool AreAnyRoomsInRangeAvailable(RoomsAvailability availability, int fromDayOfYear, int? toDayOfYear = null)
        {
            // if the availability is null means that the room is assumed to be available 
            if(availability == null)
            {
                return true;
            }

            //because we have leap years we need to consider either 365 or 366 days
            if (!toDayOfYear.HasValue)
            {
                GregorianCalendar calendar = new GregorianCalendar();
                toDayOfYear = calendar.GetDaysInYear(availability.Year);
            }

            bool isAvailable = false;
            for (int d = fromDayOfYear; d < toDayOfYear; d++)
            {
                string propertyName = String.Format("IsDay{0:000}Available", d);
                PropertyInfo p = typeof(RoomsAvailability).GetProperty(propertyName);

                isAvailable = isAvailable | (bool)p.GetValue(availability, null);
            }
            return isAvailable;
        }
 public void PosTest1()
 {
     System.Globalization.Calendar tbc = new ThaiBuddhistCalendar();
     System.Globalization.Calendar gc = new GregorianCalendar();
     DateTime desiretdDT = gc.ToDateTime(1, 1, 1, 0, 0, 0, 0);
     Assert.Equal(tbc.MinSupportedDateTime, desiretdDT);
 }
Пример #7
0
        /// <summary>
        /// Returns the daylight changes for UTC (never).
        /// </summary>
        public override DaylightTime GetDaylightChanges(int year)
        {
            // We need a start and stop time
            DateTime start, end;
            Calendar cal = new GregorianCalendar();

            // 2007+ at this point has a slightly different start/stop
            if (year >= 2007)
            {
                start = new DateTime(year, 4, 1, 2, 0, 0);
                end = new DateTime(year, 11, 1, 2, 0, 0);
            }
            else
            {
                start = new DateTime(year, 3, 1, 2, 0, 0);
                end = new DateTime(year, 12, 1, 2, 0, 0);
            }

            // Move forward for the start date until we have a sunday
            while (cal.GetDayOfWeek(start) != DayOfWeek.Sunday)
                start = cal.AddDays(start, 1);

            // Move backwards from the end date to the last sunday
            while (cal.GetDayOfWeek(end) != DayOfWeek.Sunday)
                start = cal.AddDays(end, 1);

            // Create it
            return new DaylightTime(start, end,
                new TimeSpan(stOffset - dtOffset, 0, 0));
        }
Пример #8
0
        public WorkMonth(int year, int month, GermanSpecialDays specialDays, IEnumerable<ShortCut> shortCuts, float hoursPerDay)
        {
            this.year = year;
              this.month = month;
              this.hoursPerDay = hoursPerDay;
              this.Weeks = new ObservableCollection<WorkWeek>();
              this.Days = new ObservableCollection<WorkDay>();
              this.ShortCutStatistic = new ObservableCollection<KeyValuePair<string, ShortCutStatistic>>();
              // TODO which date should i take?
              this.ReloadShortcutStatistic(shortCuts);

              var cal = new GregorianCalendar();
              WorkWeek lastWeek = null;
              for (int day = 1; day <= cal.GetDaysInMonth(year, month); day++) {
            var dt = new DateTime(year, month, day);

            WorkDay wd = new WorkDay(year, month, day, specialDays);
            this.Days.Add(wd);
            var weekOfYear = cal.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
            if (lastWeek == null || lastWeek.WeekOfYear != weekOfYear) {
              lastWeek = new WorkWeek(this, weekOfYear);
              lastWeek.PropertyChanged += new PropertyChangedEventHandler(this.WeekPropertyChanged);
              this.Weeks.Add(lastWeek);
            }
            lastWeek.AddDay(wd);
              }
        }
Пример #9
0
        public List<List<CalendarDay>> Create(IQueryable<Episode> episodeCollection, DateTime currentDate)
        {
            List<List<CalendarDay>> model = this.ConstructModel();

            Calendar calendar = new GregorianCalendar();

            const int CalendarDays = 42;

            DateTime startDate = new DateTime(currentDate.Year, currentDate.Month, 1);

            startDate = startDate.Subtract(new TimeSpan((int)calendar.GetDayOfWeek(startDate) - (int)DayOfWeek.Monday, 0, 0, 0));

            DateTime endDate = startDate.Add(new TimeSpan(CalendarDays, 0, 0, 0));

            List<CalendarEpisode> episodes = this.GetEpisodes(episodeCollection, startDate, endDate);

            int weekIndex = 0;

            for (int i = 0; i < CalendarDays; i++)
            {
                DayOfWeek dayOfWeek = calendar.GetDayOfWeek(startDate);

                this.AddEpisodes(model, episodes, startDate, weekIndex);

                startDate = startDate.AddDays(1);

                if (dayOfWeek == DayOfWeek.Sunday)
                {
                    weekIndex++;
                }
            }

            return model;
        }
Пример #10
0
        public static List<ActivityDay> GetCalendarDaysFor(int? period/*0=yearly, 1=monthly and 2=weekly*/)
        {
            var days = new List<ActivityDay>();
            //var calendar = new ActivityCalendar();
                var calendarYear = new GregorianCalendar();
                switch (period)
                {
                    case 0:

                        var dayNumber=(int)DateTime.Now.DayOfWeek;
                        var weekDay = DateTime.Now.AddDays(-dayNumber);

                        for (int i=0;i<7;i++)
                        {

                            days.Add(new ActivityDay {
                                Date = weekDay,
                                Name = calendarYear.GetDayOfWeek(weekDay).ToString(),
                                Status=true,
                                ActivityStatus = calendarYear.GetDayOfWeek(weekDay) == DayOfWeek.Friday ?
                                DayStatus.Holiday
                                :DayStatus.Active});
                            weekDay=weekDay.AddDays(1);
                        }
                        break;
                    case 1:

                        var daysInMonth=calendarYear.GetDaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
                        for (int day = 1; day <= daysInMonth;day++ )
                        {
                            var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, day);
                            days.Add(new ActivityDay
                            {
                                Date = date,
                                Name = calendarYear.GetDayOfWeek(date).ToString(),
                                Status = true,
                                ActivityStatus = calendarYear.GetDayOfWeek(date) ==
                                DayOfWeek.Friday ? DayStatus.Holiday : DayStatus.Active
                            });
                        }
                        break;
                    default:

                        var daysInYr=calendarYear.GetDaysInYear(DateTime.Now.Year);
                        var startOfYr = new DateTime(DateTime.Now.Year, 1, 1);
                        for (int day = 0; day < daysInYr; day++)
                        {
                            var dateOfYr = new ActivityDay {Date=startOfYr.AddDays(day) };
                            dateOfYr.Name = calendarYear.GetDayOfWeek(dateOfYr.Date).ToString();
                            dateOfYr.Status = true;
                            dateOfYr.ActivityStatus = calendarYear.GetDayOfWeek(dateOfYr.Date) == DayOfWeek.Friday ? DayStatus.Holiday : DayStatus.Active;
                            days.Add(dateOfYr);

                        }

                        break;
                }
                return days;
        }
Пример #11
0
    public static SqlInt32 FN_GER_GetWeekOfYear(SqlDateTime _date)
    {

        System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();


        return _date.IsNull ? SqlInt32.Null : gc.GetWeekOfYear(_date.Value, System.Globalization.CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
    }
 private void PosTest1(GregorianCalendarTypes calendarType)
 {
     System.Globalization.Calendar myCalendar = new GregorianCalendar(calendarType);
     int expectedTwoDigitYearMax, actualTwoDigitYearMax;
     expectedTwoDigitYearMax = c_DEFAULT_TWO_DIGIT_YEAR_MAX;
     actualTwoDigitYearMax = myCalendar.TwoDigitYearMax;
     Assert.Equal(expectedTwoDigitYearMax, actualTwoDigitYearMax);
 }
        public void GetDaysInYearShouldReturnCorrectCount()
        {
            var target = new GregorianFiscalCalendar( 7 );
            var calendar = new GregorianCalendar();

            for ( var year = 1998; year <= 2030; year++ )
                Assert.Equal( calendar.GetDaysInYear( year ), target.GetDaysInYear( year ) );
        }
Пример #14
0
        public void Can_Get_IndexOfDay_For_Other_Calendars_Using_CultureHelper()
        {
            var calendar = new GregorianCalendar();
            var dt = new DateTime(2009, 5, 11); //Should be Monday
            var dow = CultureHelper.GetDayOfWeek(dt, calendar);

            Assert.AreEqual(1, dow);
        }
 // PosTest: Get the MaxSupportedDateTime of Gregorian calendar
 private void PosTest(GregorianCalendarTypes calendarType)
 {
     System.Globalization.Calendar myCalendar = new GregorianCalendar(calendarType);
     DateTime expectedTime, actualTime;
     expectedTime = DateTime.MaxValue;
     actualTime = myCalendar.MaxSupportedDateTime;
     Assert.Equal(expectedTime, actualTime);
 }
 public void PosTest1()
 {
     System.Globalization.Calendar tc = new TaiwanCalendar();
     System.Globalization.Calendar gc = new GregorianCalendar();
     DateTime desiretdDT = gc.ToDateTime(9999, 12, 31, 23, 59, 59, 999);
     desiretdDT = desiretdDT.AddTicks(9999);
     Assert.Equal(desiretdDT, tc.MaxSupportedDateTime);
 }
Пример #17
0
 public void PosTest2()
 {
     System.Globalization.Calendar kC = new KoreanCalendar();
     DateTime dateTime = new GregorianCalendar().ToDateTime(9999, 12, 31, 0, 0, 0, 0);
     int expectedValue = 1;
     int actualValue;
     actualValue = kC.GetEra(dateTime);
     Assert.Equal(expectedValue, actualValue);
 }
Пример #18
0
        public BaseDateControl()
        {
            pc = new PersianCalendar();
            gc = new GregorianCalendar();
            hc = new HijriCalendar();

            SelectedDateTime = DateTime.Now.Date;
            ViewDateTime = DateTime.Now.Date;
        }
Пример #19
0
 public void PosTest3()
 {
     System.Globalization.Calendar kC = new KoreanCalendar();
     DateTime dateTime = new GregorianCalendar().ToDateTime(2008, 2, 29, 0, 0, 0, 0);
     int expectedValue = 29;
     int actualValue;
     actualValue = kC.GetDayOfMonth(dateTime);
     Assert.Equal(expectedValue, actualValue);
 }
Пример #20
0
 private void PosTest(GregorianCalendarTypes calendarType)
 {
     System.Globalization.Calendar myCalendar = new GregorianCalendar(calendarType);
     int[] expectedEras, actualEras;
     expectedEras = s_ADEra;
     actualEras = myCalendar.Eras;
     Assert.Equal(expectedEras.Length, actualEras.Length);
     Assert.Equal(expectedEras[0], actualEras[0]);
 }
 private void PosTest2(GregorianCalendarTypes calendarType)
 {
     System.Globalization.Calendar myCalendar = new GregorianCalendar(calendarType);
     int expectedTwoDigitYearMax, actualTwoDigitYearMax;
     expectedTwoDigitYearMax = c_MIN_TWO_DIGIT_YEAR + TestLibrary.Generator.GetInt32(-55) % (c_MAX_YEAR - c_MIN_TWO_DIGIT_YEAR + 1);
     myCalendar.TwoDigitYearMax = expectedTwoDigitYearMax;
     actualTwoDigitYearMax = myCalendar.TwoDigitYearMax;
     Assert.Equal(expectedTwoDigitYearMax, actualTwoDigitYearMax);
 }
Пример #22
0
    /// <summary>
    /// 今年第几周,年的第一周从年的第一天开始,到指定周的下一个首日结束。
    /// </summary>
    /// <param name="datetime"></param>
    /// <param name="dayOfWeek"></param>
    /// <returns></returns>
    public static int GetWeekOfYearFirstDay(DateTime datetime, DayOfWeek dayOfWeek)
    {
        int weekYear = new System.Globalization.GregorianCalendar()
                       .GetWeekOfYear(datetime,
                                      System.Globalization.CalendarWeekRule.FirstDay,
                                      dayOfWeek);

        return(weekYear);
    }
Пример #23
0
 public void PosTest2()
 {
     System.Globalization.Calendar kC = new KoreanCalendar();
     DateTime maxDT = DateTime.MaxValue;
     DateTime expectedValue = new GregorianCalendar().ToDateTime(maxDT.Year, maxDT.Month, maxDT.Day, 0, 0, 0, 0);
     DateTime actualValue;
     actualValue = kC.AddMonths(expectedValue, -2);
     Assert.Equal(kC.GetMonth(expectedValue) - 2, kC.GetMonth(actualValue));
 }
Пример #24
0
        public override CompileResult Execute(IEnumerable<FunctionArgument> arguments, ParsingContext context)
        {
            ValidateArguments(arguments, 2);
            var numDate1 = ArgToDecimal(arguments, 0);
            var numDate2 = ArgToDecimal(arguments, 1);
            var dt1 = System.DateTime.FromOADate(numDate1);
            var dt2 = System.DateTime.FromOADate(numDate2);

            var calcType = Days360Calctype.Us;
            if (arguments.Count() > 2)
            {
                var european = ArgToBool(arguments, 2);
                if(european) calcType = Days360Calctype.European;
            }

            var startYear = dt1.Year;
            var startMonth = dt1.Month;
            var startDay = dt1.Day;
            var endYear = dt2.Year;
            var endMonth = dt2.Month;
            var endDay = dt2.Day;

            if (calcType == Days360Calctype.European)
            {
                if (startDay == 31) startDay = 30;
                if (endDay == 31) endDay = 30;
            }
            else
            {
                var calendar = new GregorianCalendar();
                var nDaysInFeb = calendar.IsLeapYear(dt1.Year) ? 29 : 28;
               
                 // If the investment is EOM and (Date1 is the last day of February) and (Date2 is the last day of February), then change D2 to 30.
                if (startMonth == 2 && startDay == nDaysInFeb && endMonth == 2 && endDay == nDaysInFeb)
                {
                    endDay = 30;
                }
                 // If the investment is EOM and (Date1 is the last day of February), then change D1 to 30.
                if (startMonth == 2 && startDay == nDaysInFeb)
                {
                    startDay = 30;
                }
                 // If D2 is 31 and D1 is 30 or 31, then change D2 to 30.
                if (endDay == 31 && (startDay == 30 || startDay == 31))
                {
                    endDay = 30;
                }
                 // If D1 is 31, then change D1 to 30.
                if (startDay == 31)
                {
                    startDay = 30;
                }
            }
            var result = (endYear*12*30 + endMonth*30 + endDay) - (startYear*12*30 + startMonth*30 + startDay);
            return CreateResult(result, DataType.Integer);
        }
Пример #25
0
 public void PosTest3()
 {
     System.Globalization.Calendar kC = new KoreanCalendar();
     DateTime leapDT = new GregorianCalendar().ToDateTime(2003, 1, 29, 0, 0, 0, 0);
     DateTime expectedValue = leapDT;
     DateTime actualValue;
     actualValue = kC.AddMonths(expectedValue, 1);
     Assert.Equal(kC.GetMonth(expectedValue) + 1, kC.GetMonth(actualValue));
     Assert.Equal(kC.GetDayOfMonth(expectedValue) - 1, kC.GetDayOfMonth(actualValue));
 }
 public void PosTest3()
 {
     System.Globalization.Calendar kC = new KoreanCalendar();
     System.Globalization.Calendar gC = new GregorianCalendar();
     DateTime dateTime = gC.ToDateTime(2004, 2, 29, 0, 0, 0, 0);
     int expectedValue = gC.GetMonthsInYear(dateTime.Year, gC.GetEra(dateTime));
     int actualValue;
     actualValue = kC.GetMonthsInYear(dateTime.Year + 2333, kC.GetEra(dateTime));
     Assert.Equal(expectedValue, actualValue);
 }
 private void PosTest1(GregorianCalendarTypes calendarType)
 {
     System.Globalization.Calendar myCalendar = new GregorianCalendar(calendarType);
     int twoDigitYear;
     int expectedFourDigitYear, actualFourDigitYear;
     twoDigitYear = TestLibrary.Generator.GetInt32(-55) % (c_MAX_TWO_DIGIT_YEAR + 1);
     expectedFourDigitYear = GetExpectedFourDigitYear(myCalendar, twoDigitYear);
     actualFourDigitYear = myCalendar.ToFourDigitYear(twoDigitYear);
     Assert.Equal(expectedFourDigitYear, actualFourDigitYear);
 }
Пример #28
0
 public static DateTime? UnixTimeStampToDateTime(this Int64? unixTimeStamp)
 {
     if (unixTimeStamp == null || unixTimeStamp == 0)
     {
         return null;
     }
     DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
     dtDateTime = new GregorianCalendar().AddSeconds(dtDateTime, (int) unixTimeStamp).ToLocalTime();
     return dtDateTime;
 }
Пример #29
0
 public static void GregorianTest()
 {
     GregorianCalendar cal = new GregorianCalendar();
     cal = new GregorianCalendar(GregorianCalendarTypes.Arabic);
     cal = new GregorianCalendar(GregorianCalendarTypes.Localized);
     cal = new GregorianCalendar(GregorianCalendarTypes.MiddleEastFrench);
     cal = new GregorianCalendar(GregorianCalendarTypes.TransliteratedEnglish);
     cal = new GregorianCalendar(GregorianCalendarTypes.TransliteratedFrench);
     cal = new GregorianCalendar(GregorianCalendarTypes.USEnglish);
 }
Пример #30
0
 public void PosTest1()
 {
     System.Globalization.Calendar kC = new KoreanCalendar();
     System.Globalization.Calendar gC = new GregorianCalendar();
     DateTime dateTime = gC.ToDateTime(1, 1, 1, 0, 0, 0, 0);
     int expectedValue = gC.GetYear(dateTime) + 2333;
     int actualValue;
     actualValue = kC.GetYear(dateTime);
     Assert.Equal(expectedValue, actualValue);
 }
 private void PosTest3(GregorianCalendarTypes calendarType)
 {
     System.Globalization.Calendar myCalendar = new GregorianCalendar(calendarType);
     int twoDigitYear;
     int expectedFourDigitYear, actualFourDigitYear;
     twoDigitYear = c_MIN_TWO_DIGIT_YEAR;
     expectedFourDigitYear = GetExpectedFourDigitYear(myCalendar, twoDigitYear);
     actualFourDigitYear = myCalendar.ToFourDigitYear(twoDigitYear);
     Assert.Equal(expectedFourDigitYear, actualFourDigitYear);
 }
Пример #32
0
 public void PosTest4()
 {
     int yearAdd = TestLibrary.Generator.GetInt16(-55) % 2000 * (-1);
     DateTime dateTime = new DateTime(2000, 1, 1);
     DateTime expectedValue = new GregorianCalendar().ToDateTime(dateTime.Year + yearAdd, dateTime.Month, dateTime.Day, 0, 0, 0, 0);
     DateTime actualValue;
     System.Globalization.Calendar kC = new KoreanCalendar();
     actualValue = kC.AddYears(dateTime, yearAdd);
     Assert.Equal(kC.GetYear(expectedValue), kC.GetYear(actualValue));
 }
Пример #33
0
        public void NpgsqlDateConstructors()
        {
            NpgsqlDate date;
            DateTime   dateTime;

            System.Globalization.Calendar calendar = new System.Globalization.GregorianCalendar();

            date = new NpgsqlDate();
            Assert.AreEqual(1, date.Day);
            Assert.AreEqual(DayOfWeek.Monday, date.DayOfWeek);
            Assert.AreEqual(1, date.DayOfYear);
            Assert.AreEqual(false, date.IsLeapYear);
            Assert.AreEqual(1, date.Month);
            Assert.AreEqual(1, date.Year);

            dateTime = new DateTime(2009, 5, 31);
            date     = new NpgsqlDate(dateTime);
            Assert.AreEqual(dateTime.Day, date.Day);
            Assert.AreEqual(dateTime.DayOfWeek, date.DayOfWeek);
            Assert.AreEqual(dateTime.DayOfYear, date.DayOfYear);
            Assert.AreEqual(calendar.IsLeapYear(2009), date.IsLeapYear);
            Assert.AreEqual(dateTime.Month, date.Month);
            Assert.AreEqual(dateTime.Year, date.Year);

            //Console.WriteLine(new DateTime(2009, 5, 31).Ticks);
            //Console.WriteLine((new DateTime(2009, 5, 31) - new DateTime(1, 1, 1)).TotalDays);
            // 2009-5-31
            dateTime = new DateTime(633793248000000000); // ticks since 1 Jan 1
            date     = new NpgsqlDate(733557);           // days since 1 Jan 1
            Assert.AreEqual(dateTime.Day, date.Day);
            Assert.AreEqual(dateTime.DayOfWeek, date.DayOfWeek);
            Assert.AreEqual(dateTime.DayOfYear, date.DayOfYear);
            Assert.AreEqual(calendar.IsLeapYear(2009), date.IsLeapYear);
            Assert.AreEqual(dateTime.Month, date.Month);
            Assert.AreEqual(dateTime.Year, date.Year);

            // copy previous value.  should get same result
            date = new NpgsqlDate(date);
            Assert.AreEqual(dateTime.Day, date.Day);
            Assert.AreEqual(dateTime.DayOfWeek, date.DayOfWeek);
            Assert.AreEqual(dateTime.DayOfYear, date.DayOfYear);
            Assert.AreEqual(calendar.IsLeapYear(2009), date.IsLeapYear);
            Assert.AreEqual(dateTime.Month, date.Month);
            Assert.AreEqual(dateTime.Year, date.Year);
        }
Пример #34
0
        /// <summary>
        /// Calculates the occurrence (first, second, third, etc) of a particular day of the week (Monday, Tuesday, etc) for a given <paramref name="date"/>
        /// </summary>
        /// <param name="date">date to determine the occurrence of that particular day of the week</param>
        /// <returns>numeric representation of the occurrence</returns>
        public static int OccurrenceOfDayInMonth(this DateTime date)
        {
            date = date.Date;

            System.Globalization.Calendar calendar = new System.Globalization.GregorianCalendar();
            DateTime firstOfMonth = new DateTime(date.Year, date.Month, 1);

            TimeSpan daysFromFirstOfMonth = date - firstOfMonth;

            int occurrence = daysFromFirstOfMonth.Days / 7;

            if ((daysFromFirstOfMonth.Days % 7 != 0) || (firstOfMonth.DayOfWeek == date.DayOfWeek))
            {
                ++occurrence;
            }

            return(occurrence);
        }
Пример #35
0
    /// <summary>
    /// 计算第几周
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public static int Week(DateTime dt)
    {
        System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();

        //System.Globalization.ChineseLunisolarCalendar cg = new System.Globalization.ChineseLunisolarCalendar();

        return(gc.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday));

        //int weekOfYear = 0;
        //if (DateTime.Now.DayOfYear % 7 > 0)
        //{
        //    weekOfYear = (DateTime.Now.DayOfYear - (DateTime.Now.DayOfYear % 7)) / 7 + 1;
        //}
        //else
        //{
        //    weekOfYear = DateTime.Now.DayOfYear / 7;
        //}
        //return weekOfYear;
    }
Пример #36
0
        private static string SplitDate <T>(T objValue, out long splitIndex, DbLoadBalanceInfo.TableNameRule tnr)
        {
            splitIndex = 0;
            string   tableName = tnr.Prefix;
            DateTime dateValue = Convert.ToDateTime(objValue);

            if (tnr.Format >= 1 && tnr.Format <= 4)
            {
                string suffix = string.Empty;
                switch (tnr.Format)
                {
                case 1:
                    suffix = dateValue.ToString("yyyy");
                    break;

                case 2:
                    suffix = dateValue.ToString("yyyyMM");
                    break;

                case 3:
                    suffix = dateValue.ToString("yyyyMMdd");
                    break;

                case 4:    //当年第几周
                    int week = new System.Globalization.GregorianCalendar().GetWeekOfYear(dateValue, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
                    suffix = dateValue.ToString("yyyy") + week.ToString();
                    break;

                default:
                    break;
                }
                if (suffix != string.Empty)
                {
                    tableName  = string.Format("{0}_{1}", tnr.Prefix, suffix);
                    splitIndex = int.Parse(dateValue.ToString("yyyyMMdd"));
                }
            }
            return(tableName);
        }
Пример #37
0
 public static DateTime ToDateTime(this string datetime, char dateSpliter = '-', char timeSpliter = ':', char millisecondSpliter = ',')
 {
     try
     {
         DateTime    result;
         CultureInfo cul;
         Calendar    calendar = new System.Globalization.GregorianCalendar();
         cul = new CultureInfo("ar-SA");
         cul.DateTimeFormat.Calendar = calendar;
         datetime = datetime.Trim();
         datetime = datetime.Replace("  ", " ");
         string[] body = datetime.Split(' ');
         string[] date = body[0].Split(dateSpliter);
         int      year = int.Parse(date[0]);
         int      month = int.Parse(date[1]);
         int      day = int.Parse(date[2]);
         int      hour = 0, minute = 0, second = 0, millisecond = 0;
         if (body.Length == 2)
         {
             string[] tpart = body[1].Split(millisecondSpliter);
             string[] time  = tpart[0].Split(timeSpliter);
             hour   = int.Parse(time[0]);
             minute = int.Parse(time[1]);
             if (time.Length == 3)
             {
                 second = int.Parse(time[2]);
             }
             if (tpart.Length == 2)
             {
                 millisecond = int.Parse(tpart[1]);
             }
         }
         return(new DateTime(year, month, day, hour, minute, second, millisecond, calendar));
     }
     catch
     {
         return(new DateTime());
     }
 }
Пример #38
0
        public static int GetWeek(this DateTime d)
        {
            var gc        = new System.Globalization.GregorianCalendar();
            var first_day = new DateTime(d.Year, 1, 1);

            System.Globalization.CalendarWeekRule rule;

            switch (first_day.DayOfWeek)
            {
            case DayOfWeek.Monday:
            {
                rule = CalendarWeekRule.FirstDay;
                break;
            }

            default:
            {
                rule = CalendarWeekRule.FirstFullWeek;
                break;
            }
            }
            return(gc.GetWeekOfYear(d, rule, DayOfWeek.Monday));
        }
Пример #39
0
        /// <summary>
        /// 转换日期到波斯时间
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public DateTime GetDateOfPersian(DateTime date)
        {
            String CurrentName     = Thread.CurrentThread.CurrentCulture.Name;
            String CurrentCalendar = Thread.CurrentThread.CurrentCulture.Calendar.ToString();


            //如果客户是波斯日历需要开启这里
            if (CurrentName == "fa-IR" && (CurrentCalendar == "DotNetNuke.PersianLibrary.DNNPersianDate" || CurrentCalendar == "System.Globalization.PersianCalendar"))
            {
                System.Globalization.PersianCalendar jc = new System.Globalization.PersianCalendar();
                return(jc.ToDateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Millisecond));
            }

            //如果客户是阿拉伯日历需要开启这里
            if (CurrentName == "ar-SA")
            {
                System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar(System.Globalization.GregorianCalendarTypes.Arabic);
                return(gc.ToDateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, date.Millisecond));
            }



            return(date);
        }
Пример #40
0
        private void bb_mes_Click(object sender, EventArgs e)
        {
            month = 0;
            if (((Button)sender).Text.ToUpper().Equals("JANEIRO"))
            {
                month = 01;
            }
            else if (((Button)sender).Text.ToUpper().Equals("FEVEREIRO"))
            {
                month = 02;
            }
            else if (((Button)sender).Text.ToUpper().Equals("MARÇO"))
            {
                month = 03;
            }
            else if (((Button)sender).Text.ToUpper().Equals("ABRIL"))
            {
                month = 04;
            }
            else if (((Button)sender).Text.ToUpper().Equals("MAIO"))
            {
                month = 05;
            }
            else if (((Button)sender).Text.ToUpper().Equals("JUNHO"))
            {
                month = 06;
            }
            else if (((Button)sender).Text.ToUpper().Equals("JULHO"))
            {
                month = 07;
            }
            else if (((Button)sender).Text.ToUpper().Equals("AGOSTO"))
            {
                month = 08;
            }
            else if (((Button)sender).Text.ToUpper().Equals("SETEMBRO"))
            {
                month = 09;
            }
            else if (((Button)sender).Text.ToUpper().Equals("OUTUBRO"))
            {
                month = 10;
            }
            else if (((Button)sender).Text.ToUpper().Equals("NOVEMBRO"))
            {
                month = 11;
            }
            else if (((Button)sender).Text.ToUpper().Equals("DEZEMBRO"))
            {
                month = 12;
            }

            // obtém a quantidade de dias MÊS e ANO selecionados
            System.Globalization.Calendar c = new System.Globalization.GregorianCalendar();
            daysMonth = c.GetDaysInMonth(int.Parse(cbxAno.SelectedItem.ToString()), month);
            //Verificar dia da semana em que se incia o MÊS selecionado
            DateTime date;

            date = Convert.ToDateTime("01" + "/" + month.ToString() + "/" + cbxAno.SelectedItem.ToString());
            string day = date.DayOfWeek.ToString();

            //Chamar Mes
            tcPainel.TabPages.Remove(tpAno);
            tcPainel.TabPages.Add(tpMes);
            //Preencher Mudança
            this.PreencherMudanca(date);
            //Preencher mes
            this.LimparLabel();
            this.PreencherMes(day);
            //Layout Mes
            tpMes.Text = ((Button)sender).Text + "/" + cbxAno.SelectedItem.ToString() + " - " + lCfg[0].Nm_empresa +
                         "            LEGENDA: I - INICIO VIAGEM[PRETO]|           V - EM VIAGEM[AZUL]|           E - ENTREGA[VERDE]|             [Pressione ESC para Sair].";
            tpMes.Font      = new Font("Arial", 15, FontStyle.Bold);
            tpMes.ForeColor = Color.Blue;
            //Redimensionar se mes nao ocupar todos os ListBox
            if (lb29.Items.Count.Equals(0) &&
                lb30.Items.Count.Equals(0) &&
                lb31.Items.Count.Equals(0) &&
                lb32.Items.Count.Equals(0) &&
                lb33.Items.Count.Equals(0) &&
                lb34.Items.Count.Equals(0) &&
                lb35.Items.Count.Equals(0))
            {
                tlpMes.RowStyles[5] = new RowStyle(SizeType.Absolute, 0);
            }
            else
            {
                tlpMes.RowStyles[5] = new RowStyle(SizeType.Percent, 16.67067F);
            }
            //Redimensionar se mes nao ocupar todos os ListBox
            if (lb36.Items.Count.Equals(0) &&
                lb37.Items.Count.Equals(0))
            {
                tlpMes.RowStyles[6] = new RowStyle(SizeType.Absolute, 0);
            }
            else
            {
                tlpMes.RowStyles[6] = new RowStyle(SizeType.Percent, 16.67067F);
            }
        }
Пример #41
0
 public int GetWeekOfYear()
 {
     System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
     return(gc.GetWeekOfYear(DateTime.Now, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday));
 }
Пример #42
0
 /// <summary>
 /// 返回年度第几个星期
 /// </summary>
 /// <param name="date">时间</param>
 /// <param name="week">一周的开始日期</param>
 /// <returns></returns>
 public static int WeekOfYear(DateTime date, DayOfWeek week)
 {
     System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
     return(gc.GetWeekOfYear(date, System.Globalization.CalendarWeekRule.FirstDay, week));
 }
Пример #43
0
        // I can't remember where this code came from, very sorry!
        public static string Strftime(string format, System.DateTime dt)
        {
            bool printFormat = false;
            var  result      = new StringBuilder();

            foreach (char c in format)
            {
                if (!printFormat && c == '%')
                {
                    printFormat = true;
                    continue;
                }

                if (printFormat)
                {
                    switch (c)
                    {
                    case 'a':
                        result.Append(dt.ToString("ddd", CultureInfo.InvariantCulture));
                        break;

                    case 'A':
                        result.Append(dt.ToString("dddd", CultureInfo.InvariantCulture));
                        break;

                    case 'b':
                        result.Append(dt.ToString("MMM", CultureInfo.InvariantCulture));
                        break;

                    case 'B':
                        result.Append(dt.ToString("MMMM", CultureInfo.InvariantCulture));
                        break;

                    case 'c':
                        result.Append(dt.ToString(CultureInfo.InvariantCulture));
                        break;

                    case 'd':
                        result.Append(dt.ToString("dd", CultureInfo.InvariantCulture));
                        break;

                    case 'H':
                        result.Append(dt.ToString("HH", CultureInfo.InvariantCulture));
                        break;

                    case 'I':
                        result.Append(dt.ToString("hh", CultureInfo.InvariantCulture));
                        break;

                    case 'j':
                        string day = dt.DayOfYear.ToString(CultureInfo.InvariantCulture);
                        if (day.Length < 3)
                        {
                            if (day.Length == 1)
                            {
                                day = "00" + day;
                            }
                            else
                            {
                                day = "0" + day;
                            }
                        }
                        result.Append(day);
                        break;

                    case 'm':
                        result.Append(dt.ToString("MM", CultureInfo.InvariantCulture));
                        break;

                    case 'M':
                        result.Append(dt.ToString("mm", CultureInfo.InvariantCulture));
                        break;

                    case 'p':
                        result.Append(dt.ToString("tt", CultureInfo.InvariantCulture));
                        break;

                    case 'S':
                        result.Append(dt.ToString("ss", CultureInfo.InvariantCulture));
                        break;

                    case 'U':
                    {
                        System.Globalization.GregorianCalendar cal = new System.Globalization.GregorianCalendar();
                        int weekOfYear = cal.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
                        if (dt.DayOfWeek != DayOfWeek.Sunday)
                        {
                            weekOfYear--;
                        }
                        result.Append(weekOfYear.ToString("00", CultureInfo.InvariantCulture));
                    }
                    break;

                    case 'W':
                    {
                        System.Globalization.GregorianCalendar cal = new System.Globalization.GregorianCalendar();
                        int weekOfYear = cal.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
                        if (dt.DayOfWeek != DayOfWeek.Sunday)
                        {
                            weekOfYear--;
                        }
                        result.Append(weekOfYear.ToString("00", CultureInfo.InvariantCulture));
                    }
                    break;

                    case 'w':
                        result.Append(((int)dt.DayOfWeek).ToString(CultureInfo.InvariantCulture));
                        break;

                    case 'x':
                        result.Append(dt.ToString("d", CultureInfo.InvariantCulture));
                        break;

                    case 'X':
                        result.Append(dt.ToString("t", CultureInfo.InvariantCulture));
                        break;

                    case 'y':
                        result.Append(dt.ToString("yy", CultureInfo.InvariantCulture));
                        break;

                    case 'Y':
                        result.Append(dt.ToString("yyyy", CultureInfo.InvariantCulture));
                        break;

                    case 'Z':
                    {
                        TimeZone localZone = TimeZone.CurrentTimeZone;
                        result.Append(localZone.DaylightName);
                    }
                    break;

                    case '%':
                        result.Append('%');
                        break;

                    default:
                        //invalid format - do nothing
                        //C specification leaves this behaviour undefined
                        break;
                    }
                    printFormat = false;
                }
                else
                {
                    result.Append(c);
                }
            }

            return(result.ToString());
        }
Пример #44
0
        public async Task <ActionResult> Get()
        {
            var donationStats = new DonationsStatisticsDto();
            var itemStats     = new ItemsStatisticsDto();

            // Initialise instance of Gregorian Calendar to get week number of year
            var greg = new System.Globalization.GregorianCalendar();

            // Get donations
            List <Donation> donations = await _context.Donations.Include(d => d.Items).ToListAsync();

            // Get Items
            List <Item> items = await _context.Items.ToListAsync();

            // Donation stats ----------------------------------------------------

            donationStats.AwaitingResponse   = donations.Count(d => d.Status == null);
            donationStats.AwaitingCollection = donations.Count(d => d.Status == "Accepted");
            donationStats.CollectionArranged = donations.Count(d => d.Status == "Awaiting Collection");

            // Week
            donationStats.ReceivedWeek = donations.Count(
                d => WeekNumber(d.SubmissionDate) == WeekNumber(DateTime.Now));
            donationStats.RejectedWeek = donations.Count(
                d => d.Status == "Rejected" &&
                WeekNumber(d.SubmissionDate) == WeekNumber(DateTime.Now));

            // Month
            donationStats.ReceivedMonth = donations.Count(d => d.SubmissionDate.Month == DateTime.Now.Month);
            donationStats.RejectedMonth = donations.Count(d => d.Status == "Rejected" && d.SubmissionDate.Month == DateTime.Now.Month);
            // Year
            donationStats.ReceivedYear = donations.Count(d => d.SubmissionDate.Year == DateTime.Now.Year);
            donationStats.RejectedYear = donations.Count(d => d.SubmissionDate.Year == DateTime.Now.Year && d.Status == "Rejected");

            // All time
            donationStats.ReceivedAll = donations.Count;
            donationStats.RejectedAll = donations.Count(d => d.Status == "Rejected");

            // Donation stats ----------------------------------------------------


            // Item stats --------------------------------------------------------
            foreach (var don in donations)
            {
                // Week
                if (WeekNumber(don.SubmissionDate) == WeekNumber(DateTime.Now))
                {
                    itemStats.ReceivedWeek += don.Items.Count;
                    itemStats.RejectedWeek += don.Items.Count(i => i.Collect == false);
                }

                // Month
                if (don.SubmissionDate.Month == DateTime.Now.Month)
                {
                    itemStats.ReceivedMonth += don.Items.Count;
                    itemStats.RejectedMonth += don.Items.Count(i => i.Collect == false);
                }

                // Year
                if (don.SubmissionDate.Year == DateTime.Now.Year)
                {
                    itemStats.ReceivedYear += don.Items.Count;
                    itemStats.RejectedYear += don.Items.Count(i => i.Collect == false);
                }
            }

            // All time
            itemStats.ReceivedAll = items.Count;
            itemStats.RejectedAll = items.Count(i => i.Collect == false);

            // Item stats --------------------------------------------------------

            // Create dto to send
            StatisticsDto stats = new StatisticsDto()
            {
                Donations = donationStats,
                Items     = itemStats
            };

            return(Ok(stats));
        }
Пример #45
0
        private void ConfigureDisplay()
        {
            System.Globalization.GregorianCalendar cal = new System.Globalization.GregorianCalendar();

            Facade.BusinessType       facBusinessType      = new Facade.BusinessType();
            Facade.IOrderServiceLevel facOrderServiceLevel = new Facade.Order();

            cblBusinessType.DataSource = facBusinessType.GetAll();
            cblBusinessType.DataBind();

            foreach (ListItem li in cblBusinessType.Items)
            {
                li.Selected = true;
            }

            cblServiceLevel.DataSource = facOrderServiceLevel.GetAll();
            cblServiceLevel.DataBind();

            foreach (ListItem li in cblServiceLevel.Items)
            {
                li.Selected = true;
            }

            string referencesSortExpression = Globals.Configuration.FlagForInvoicingReferencesSortExpression;

            if (!string.IsNullOrEmpty(referencesSortExpression))
            {
                grdOrders.Columns.FindByUniqueName("References").SortExpression = referencesSortExpression;
            }

            int IdentityID = 0;

            if (!string.IsNullOrEmpty(Request.QueryString["identityid"]))
            {
                int.TryParse(Request.QueryString["identityid"].ToString(), out IdentityID);
            }

            string MinDate = string.Empty;

            if (!string.IsNullOrEmpty(Request.QueryString["MinDate"]))
            {
                MinDate = Request.QueryString["MinDate"];
            }

            if (IdentityID > 0 && MinDate.Length > 0)
            {
                m_isFromDash = true;
                Facade.IOrganisation facOrg = new Facade.Organisation();
                string name = facOrg.GetNameForIdentityId(IdentityID);

                cboClient.SelectedValue = IdentityID.ToString();
                cboClient.Text          = name;

                DateTime startDate = new DateTime();
                DateTime.TryParse(MinDate, out startDate);

                rdiStartDate.SelectedDate = startDate;
                rdiEndDate.SelectedDate   = System.DateTime.Today;

                if (startDate >= System.DateTime.Today)
                {
                    rdiEndDate.SelectedDate = startDate.AddDays(1);
                }

                rdoListInvoiceType.Items[0].Selected = false;
                rdoListInvoiceType.Items[2].Selected = true;

                grdOrders.Rebind();
            }
        }