Ejemplo n.º 1
0
 /// <summary>
 /// This implementation was found on http://stackoverflow.com/questions/1285191/get-week-of-date-from-linq-query
 /// </summary>
 /// <param name="fromDate"></param>
 /// <returns></returns>
 private int WeekNumber(System.DateTime fromDate)
 {
     // Get jan 1st of the year
     var startOfYear = fromDate.AddDays(-fromDate.Day + 1).AddMonths(-fromDate.Month + 1);
     // Get dec 31st of the year
     var endOfYear = startOfYear.AddYears(1).AddDays(-1);
     // ISO 8601 weeks start with Monday
     // The first week of a year includes the first Thursday
     // DayOfWeek returns 0 for sunday up to 6 for saterday
     int[] iso8601Correction = { 6, 7, 8, 9, 10, 4, 5 };
     int nds = fromDate.Subtract(startOfYear).Days + iso8601Correction[(int)startOfYear.DayOfWeek];
     int wk = nds / 7;
     switch (wk)
     {
         case 0:
             // Return weeknumber of dec 31st of the previous year
             return WeekNumber(startOfYear.AddDays(-1));
         case 53:
             // If dec 31st falls before thursday it is week 01 of next year
             if (endOfYear.DayOfWeek < DayOfWeek.Thursday)
                 return 1;
             return wk;
         default: return wk;
     }
 }
Ejemplo n.º 2
0
 public void Export_SPUN(System.DateTime FromDate, System.DateTime ToDate, string path, string prefix, int reeType, int processType, bool writePeriod, string sql, string note)
 {
     string str;
     System.IO.StreamWriter writer = null;
     try
     {
         System.Text.Encoding encoding = System.Text.Encoding.GetEncoding(0x362);
         string str2 = string.Concat((string[]) new string[] { path, @"\", prefix, ((string) DALSql.ExecuteScalar("select isnull(sn.Setting_GetValue('GLOBAL','Код района из 1С'),'')", null)), "_", System.DateTime.Now.ToString("yyMMdd_HHmmss"), ".txt" });
         System.IO.File.Delete(str2);
         writer = new System.IO.StreamWriter(str2, false, encoding);
         writer.WriteLine("#TYPEORG\tRKC");
         writer.WriteLine("#KODORG\t\t" + ((string) ((string) DALSql.ExecuteScalar("select isnull(sn.Setting_GetValue('SID','Код организации'),'')", null))));
         writer.WriteLine("#NAMEORG\t" + ((string) ((string) DALSql.ExecuteScalar("select isnull(sn.Setting_GetValue('SID','Наименование организации'),'')", null))));
         writer.WriteLine("#TYPEREE\t" + ((int) reeType).ToString());
         writer.WriteLine("#PROCESS\t" + ((int) processType).ToString());
         writer.Write("#RECORDS\t");
         writer.Flush();
         long num = writer.BaseStream.get_Position();
         writer.WriteLine("         ");
         if (writePeriod)
         {
             System.DateTime time = FromDate.AddDays((double) (-FromDate.get_Day() + 1));
             writer.WriteLine("#PERIODB\t" + time.ToString(@"dd\/MM\/yyyy"));
             writer.WriteLine("#PERIODE\t" + time.AddMonths(1).AddDays((double) -1.0).ToString(@"dd\/MM\/yyyy"));
         }
         writer.WriteLine(string.Concat((string[]) new string[] { "#NOTE\t\t", note, " (", System.DateTime.Now.ToString("dd.MM.yyyy HH:mm"), ")" }));
         int num2 = 0;
         System.Data.SqlClient.SqlParameter[] parameters = new System.Data.SqlClient.SqlParameter[2];
         parameters[0] = new System.Data.SqlClient.SqlParameter("@d_beg", System.Data.SqlDbType.DateTime);
         parameters[0].set_Value(FromDate);
         parameters[1] = new System.Data.SqlClient.SqlParameter("@d_end", System.Data.SqlDbType.DateTime);
         parameters[1].set_Value(ToDate.AddDays((double) 1.0).AddSeconds((double) -1.0));
         writer.WriteLine("#NOTE\t\tДата начала выборки: " + System.Convert.ToDateTime(parameters[0].get_Value()).ToString("dd.MM.yyyy HH:mm"));
         writer.WriteLine("#NOTE\t\tДата окончания выборки: " + System.Convert.ToDateTime(parameters[1].get_Value()).ToString("dd.MM.yyyy HH:mm"));
         foreach (System.Data.DataRow row in DALSql.ExecuteDataTable(sql, parameters).Rows)
         {
             writer.WriteLine(row.get_Item(0).ToString());
             num2 = (int) (num2 + 1);
         }
         writer.Flush();
         writer.BaseStream.Seek(num, System.IO.SeekOrigin.Begin);
         writer.Write(((int) num2).ToString("########0"));
         str = "Файл сформирован" + System.Environment.get_NewLine() + str2;
     }
     catch (System.Exception exception)
     {
         throw new System.ApplicationException("Произошла ошибка выгрузки", exception);
     }
     finally
     {
         if (writer != null)
         {
             writer.Close();
         }
     }
     throw new System.ApplicationException(str);
 }
Ejemplo n.º 3
0
 private System.DateTime AdjustResultWithHolidays(System.DateTime resultDate,
                                                  IEnumerable<FunctionArgument> arguments)
 {
     if (arguments.Count() == 2) return resultDate;
     var holidays = arguments.ElementAt(2).Value as IEnumerable<FunctionArgument>;
     if (holidays != null)
     {
         foreach (var arg in holidays)
         {
             if (ConvertUtil.IsNumeric(arg.Value))
             {
                 var dateSerial = ConvertUtil.GetValueDouble(arg.Value);
                 var holidayDate = System.DateTime.FromOADate(dateSerial);
                 if (!IsHoliday(holidayDate))
                 {
                     resultDate = resultDate.AddDays(1);
                 }
             }
         }
     }
     else
     {
         var range = arguments.ElementAt(2).Value as ExcelDataProvider.IRangeInfo;
         if (range != null)
         {
             foreach (var cell in range)
             {
                 if (ConvertUtil.IsNumeric(cell.Value))
                 {
                     var dateSerial = ConvertUtil.GetValueDouble(cell.Value);
                     var holidayDate = System.DateTime.FromOADate(dateSerial);
                     if (!IsHoliday(holidayDate))
                     {
                         resultDate = resultDate.AddDays(1);
                     }
                 }
             }
         }
     }
     return resultDate;
 }
Ejemplo n.º 4
0
        public void Form1TasksUpdate( System.DateTime start, System.DateTime end)
        {
            this.taskDescriptionDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();

            int i = 0;
            while ((DateTime.Compare(start, end) != 0) && (i < 10))
            {
                this.taskDescriptionDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();

                this.taskDescriptionDataGridViewTextBoxColumn2.DataPropertyName = start.ToString("dd.MM");
                this.taskDescriptionDataGridViewTextBoxColumn2.HeaderText = start.ToString("dd.MM");
                this.taskDescriptionDataGridViewTextBoxColumn2.Name = start.ToString("dd.MM");
                this.taskDescriptionDataGridViewTextBoxColumn2.Width = 40;

                TaskDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
                  this.taskDescriptionDataGridViewTextBoxColumn2});

                start = start.AddDays(1);
                i++;
            }
        }
Ejemplo n.º 5
0
 public void Save_VTV(System.DateTime FromDate, System.DateTime ToDate, string DestinationDir)
 {
     string str;
     try
     {
         System.Data.SqlClient.SqlParameter[] parameters = new System.Data.SqlClient.SqlParameter[2];
         parameters[0] = new System.Data.SqlClient.SqlParameter("@d_beg", System.Data.SqlDbType.DateTime);
         parameters[0].set_Value(FromDate);
         parameters[1] = new System.Data.SqlClient.SqlParameter("@d_end", System.Data.SqlDbType.DateTime);
         parameters[1].set_Value(ToDate.AddDays((double) 1.0));
         System.Data.DataSet set = DALSql.ExecuteDataSet("exec up_reload_varianttv_for_dbf @d_beg, @d_end", parameters);
         set.Tables.get_Item(0).set_TableName("PL" + FromDate.ToString("MMyyyy"));
         set.Tables.get_Item(0).Columns.get_Item("nlic").set_MaxLength(20);
         set.Tables.get_Item(0).Columns.get_Item("fio").set_MaxLength(50);
         set.Tables.get_Item(0).Columns.get_Item("n_pun").set_MaxLength(20);
         set.Tables.get_Item(0).Columns.get_Item("ul").set_MaxLength(20);
         set.Tables.get_Item(0).Columns.get_Item("dom").set_MaxLength(20);
         set.Tables.get_Item(0).Columns.get_Item("kv").set_MaxLength(20);
         DBF.WriteToFile((System.Data.DataTable) set.Tables.get_Item(0), DestinationDir, set.Tables.get_Item(0).get_TableName(), DbFileFormat.dBase3, false, false);
         string str2 = ((decimal) DBF.GetTableColumnSumm((System.Data.DataTable) set.Tables.get_Item(0), "summ")).ToString("F");
         str = string.Concat((string[]) new string[] { "Выгрузка произведена в файлы ", set.Tables.get_Item(0).get_TableName(), ".DBF", System.Environment.get_NewLine(), "Общая сумма выгрузки составила ", str2 });
     }
     catch (System.Exception exception)
     {
         throw new System.ApplicationException("Произошла ошибка выгрузки", exception);
     }
     throw new System.ApplicationException(str);
 }
Ejemplo n.º 6
0
 public void SaveDBF_Electroseti(System.DateTime FromDate, System.DateTime ToDate, string DestinationDir)
 {
     string str;
     try
     {
         System.Data.SqlClient.SqlParameter[] parameters = new System.Data.SqlClient.SqlParameter[2];
         parameters[0] = new System.Data.SqlClient.SqlParameter("@d_beg", System.Data.SqlDbType.DateTime);
         parameters[0].set_Value(FromDate);
         parameters[1] = new System.Data.SqlClient.SqlParameter("@d_end", System.Data.SqlDbType.DateTime);
         parameters[1].set_Value(ToDate.AddDays((double) 1.0).AddSeconds((double) -1.0));
         System.Data.DataSet set = DALSql.ExecuteDataSet("\r\n\t\t\t\t\tcreate table #t_in (nomer varchar(12), kod_r decimal(3,0), summa decimal(18,2),\r\n\t\t\t\t\tprimary key (nomer,kod_r))\r\n\t\t\t\t\texec up_reload_usl_el_ulenergo_for_dbf2 @d_beg, @d_end", parameters);
         set.Tables.get_Item(0).set_TableName("ES" + ToDate.ToString("ddMMyy"));
         set.Tables.get_Item(0).Columns.get_Item("nlic").set_MaxLength(6);
         set.Tables.get_Item(0).Columns.get_Item("nomer").set_MaxLength(13);
         set.Tables.get_Item(0).Columns.get_Item("pokaz").set_MaxLength(6);
         set.Tables.get_Item(0).Columns.get_Item("pr_dop").set_MaxLength(1);
         set.Tables.get_Item(0).Columns.get_Item("fio_r").set_MaxLength(50);
         set.Tables.get_Item(0).Columns.get_Item("adr_r").set_MaxLength(60);
         set.Tables.get_Item(0).Columns.get_Item("tname").set_MaxLength(50);
         set.Tables.get_Item(0).Columns.get_Item("point").set_MaxLength(50);
         set.Tables.get_Item(1).set_TableName("ED" + ToDate.ToString("ddMMyy"));
         set.Tables.get_Item(1).Columns.get_Item("nomer").set_MaxLength(13);
         set.Tables.get_Item(1).Columns.get_Item("fio_lg").set_MaxLength(60);
         DBF.WriteToFile((System.Data.DataTable) set.Tables.get_Item(0), DestinationDir, set.Tables.get_Item(0).get_TableName(), DbFileFormat.dBase3, false, false);
         DBF.WriteToFile((System.Data.DataTable) set.Tables.get_Item(1), DestinationDir, set.Tables.get_Item(1).get_TableName(), DbFileFormat.dBase3, false, false);
         string str2 = ((decimal) DBF.GetTableColumnSumm((System.Data.DataTable) set.Tables.get_Item(0), "summa")).ToString("F");
         str = string.Concat((string[]) new string[] { "Выгрузка произведена в файлы ", set.Tables.get_Item(0).get_TableName(), ".DBF и ", set.Tables.get_Item(1).get_TableName(), ".DBF", System.Environment.get_NewLine(), "Общая сумма выгрузки составила ", str2 });
     }
     catch (System.Exception exception)
     {
         throw new System.ApplicationException("Произошла ошибка выгрузки", exception);
     }
     throw new System.ApplicationException(str);
 }
Ejemplo n.º 7
0
 public void SaveDBFNullOpl_Electroseti(System.DateTime FromDate, System.DateTime ToDate, string DestinationDir)
 {
     string str;
     try
     {
         System.Data.SqlClient.SqlParameter[] parameters = new System.Data.SqlClient.SqlParameter[2];
         parameters[0] = new System.Data.SqlClient.SqlParameter("@d_beg", System.Data.SqlDbType.DateTime);
         parameters[0].set_Value(FromDate);
         parameters[1] = new System.Data.SqlClient.SqlParameter("@d_end", System.Data.SqlDbType.DateTime);
         parameters[1].set_Value(ToDate.AddDays((double) 1.0).AddSeconds((double) -1.0));
         System.Data.DataSet set = DALSql.ExecuteDataSet("exec up_reload_usl_el_ulenergo_null_opl2 @d_beg, @d_end", parameters);
         set.Tables.get_Item(0).set_TableName("ES" + ToDate.ToString("ddMMyy"));
         set.Tables.get_Item(0).Columns.get_Item("nlic").set_MaxLength(6);
         set.Tables.get_Item(0).Columns.get_Item("nomer").set_MaxLength(13);
         set.Tables.get_Item(0).Columns.get_Item("pokaz").set_MaxLength(6);
         set.Tables.get_Item(0).Columns.get_Item("pr_dop").set_MaxLength(1);
         set.Tables.get_Item(0).Columns.get_Item("fio_r").set_MaxLength(50);
         set.Tables.get_Item(0).Columns.get_Item("adr_r").set_MaxLength(60);
         set.Tables.get_Item(0).Columns.get_Item("tname").set_MaxLength(50);
         set.Tables.get_Item(0).Columns.get_Item("point").set_MaxLength(50);
         DBF.WriteToFile((System.Data.DataTable) set.Tables.get_Item(0), DestinationDir, set.Tables.get_Item(0).get_TableName(), DbFileFormat.dBase3, false, false);
         decimal tableColumnSumm = (decimal) DBF.GetTableColumnSumm((System.Data.DataTable) set.Tables.get_Item(0), "summa");
         decimal tableColumnSummPositive = (decimal) DBF.GetTableColumnSummPositive((System.Data.DataTable) set.Tables.get_Item(0), "summa");
         string[] strArray = new string[] { "Выгрузка произведена в файл ", set.Tables.get_Item(0).get_TableName(), ".DBF", System.Environment.get_NewLine(), "Общая сумма выгрузки составила ", tableColumnSumm.ToString("F"), System.Environment.get_NewLine(), System.Environment.get_NewLine(), "В т.ч. аннулирование оплаты ", (tableColumnSumm - tableColumnSummPositive).ToString("F"), System.Environment.get_NewLine(), "оплата бухгалтером ", tableColumnSummPositive.ToString("F") };
         str = string.Concat(strArray);
     }
     catch (System.Exception exception)
     {
         throw new System.ApplicationException("Произошла ошибка выгрузки", exception);
     }
     throw new System.ApplicationException(str);
 }
    public static string DateFriendly (System.DateTime fecha)
    {
        System.DateTime today = System.DateTime.Now;
        System.DateTime midnight= new System.DateTime(today.Year, today.Month, today.Day);

        if (fecha > midnight)
        {
            return "Hoy " + fecha.ToShortTimeString();
        }
        else if (fecha.AddDays(1) > midnight)
        {
            return "Ayer "+fecha.ToShortTimeString();
        }
        else if (fecha.AddDays(7) > midnight)
        {
            return fecha.ToString("dddd") + " " + fecha.ToShortTimeString();
        }
        else
        {
            return fecha.ToString();
        }
    }
        /// <summary>
        /// Translates a given <see cref="DateTime"/> to a "social" date time string, e.g. "in 10 minutes" or "3 hours ago". 
        /// It compares the <paramref name="postedTime"/> parameter to the <paramref name="currentTime"/> parameter.
        /// </summary>
        /// <param name="postedTime">A time to compare to the <paramref name="currentTime"/> parameter.</param>
        /// <param name="currentTime">A <see cref="DateTime"/> representing "now".</param>
        /// <returns>A "social" date time string.</returns>
        /// <remarks>
        /// Assuming the <paramref name="currentTime"/> is June 6, 2009 1:00:00 PM (which is a Sunday),
        /// the following posted dates and times return the following results:
        /// <list type="bullet">
        /// <item>May 10, 1:30:00 PM returns "May 10 at 1:30 PM"</item>
        /// <item>June 2, 4:59:00 PM returns "Wednesday at 4:59 PM"</item>
        /// <item>June 5, 2:30:00 PM returns "Yesterday at 2:30 PM"</item>
        /// <item>June 6, 8:00:00 AM returns "5 hours ago"</item>
        /// <item>June 6, 12:00:00 PM returns "1 hour ago"</item>
        /// <item>June 6, 12:30:00 PM returns "30 minutes ago"</item>
        /// <item>June 6, 12:59:00 PM returns "1 minute ago"</item>
        /// <item>June 6, 12:59:35 PM returns "25 seconds ago"</item>
        /// <item>June 6, 12:59:59 PM returns "1 second ago ago"</item>
        /// <item>June 6, 1:00:01 PM returns "in 1 second"</item>
        /// <item>June 6, 1:00:08 PM returns "in 8 seconds"</item>
        /// <item>June 6, 1:01:00 PM returns "in 1 minute"</item>
        /// <item>June 6, 1:14:00 PM returns "in 14 minutes"</item>
        /// <item>June 6, 2:00:00 PM returns "in 1 hour"</item>
        /// <item>June 6, 4:00:00 PM returns "in 3 hours"</item>
        /// <item>June 7, 5:00:00 PM returns "Tomorrow at 5:00 PM"</item>
        /// <item>June 10, 3:30:00 PM returns "June 10 at 3:30 PM"</item>
        /// </list>
        /// </remarks>
        /// <example>
        /// <code>
        /// DateTime now = new DateTime(2016, 6, 1, 15, 25, 31);
        /// DateTime postedTime = now.AddSeconds(-1);
        /// string socialTime = postedTime.ToSocialDate(now);
        /// (Here, socialTime will be "1 second ago")
        /// </code>
        /// </example>
        public static string ToSocialDate(this System.DateTime postedTime, System.DateTime currentTime)
        {
            TimeSpan duration = currentTime - postedTime;

            if (duration.TotalDays <= -2)
            {
                return postedTime.ToString("MMMM") + " " + postedTime.Day + " at " + postedTime.ToShortTimeString();
            }
            if (duration.TotalHours <= -24)
            {
                if (postedTime.DayOfWeek == currentTime.AddDays(1).DayOfWeek)
                {
                    return "Tomorrow at " + postedTime.ToShortTimeString();
                }

                return postedTime.ToString("MMMM") + " " + postedTime.Day + " at " + postedTime.ToShortTimeString();
            }
            if (duration.Hours < -1)
            {
                return "in " + (-1 * duration.Hours) + " hours";
            }
            if (duration.Hours == -1)
            {
                return "in 1 hour";
            }
            if (duration.Minutes < -1)
            {
                return "in " + (-1 * duration.Minutes) + " minutes";
            }
            if (duration.Minutes == -1)
            {
                return "in 1 minute";
            }
            if (duration.Seconds < -1)
            {
                return "in " + (-1 * duration.Seconds) + " seconds";
            }
            if (duration.Seconds == -1)
            {
                return "in 1 second";
            }
            if (duration.Days > 6)
            {
                return postedTime.ToString("MMMM") + " " + postedTime.Day + " at " + postedTime.ToShortTimeString();
            }
            if (duration.TotalDays >= 2)
            {
                return postedTime.DayOfWeek + " at " + postedTime.ToShortTimeString();
            }
            if (duration.TotalHours >= 24)
            {
                if (postedTime.DayOfWeek == currentTime.AddDays(-1).DayOfWeek)
                {
                    return "Yesterday at " + postedTime.ToShortTimeString();
                }

                return postedTime.DayOfWeek + " at " + postedTime.ToShortTimeString();
            }
            if (duration.Hours > 1)
            {
                return duration.Hours + " hours ago";
            }
            if (duration.Hours == 1)
            {
                return "1 hour ago";
            }
            if (duration.Minutes > 1)
            {
                return duration.Minutes + " minutes ago";
            }
            if (duration.Minutes == 1)
            {
                return "1 minute ago";
            }
            if (duration.Seconds > 1)
            {
                return duration.Seconds + " seconds ago";
            }
            if (duration.Seconds <= 1)
            {
                return "1 second ago";
            }
            return postedTime.ToString("MMMM") + " " + postedTime.Day + " at " + postedTime.ToShortTimeString();
        }
Ejemplo n.º 10
0
 //获取日期是当年的第几周
 public static int DatePart(System.DateTime dt)
 {
     int weeknow = Convert.ToInt32(dt.DayOfWeek);//今天星期几
     int daydiff = (-1) * (weeknow + 1);//今日与上周末的天数差
     int days = dt.AddDays(daydiff).DayOfYear;//上周末是本年第几天
     int weeks = days / 7;
     if (days % 7 != 0)
     {
         weeks++;
     }
     //此时,weeks为上周是本年的第几周
     return (weeks + 1);
 }
Ejemplo n.º 11
0
 public static IEnumerable<DateTime> WeeksBetween(this DateTime date1, DateTime date2)
 {
     for (var date = new[] { date1, date2 }.Min().StartOfWeek(); date <= new[] { date1, date2 }.Max(); date = date.AddDays(7))
         yield return date.StartOfWeek();
 }
Ejemplo n.º 12
0
 public virtual DateTime GetWeekMondayDate(System.DateTime dtmDate)
 {
     //string strWeekMondayDate = null;
     System.DateTime dtmWeekMonday = default(System.DateTime);
     int intWeekDay = 0;
     //
     //dtmWeekMonday = dtmDate
     intWeekDay = (int)dtmDate.DayOfWeek; // DatePart(DateInterval.Weekday, dtmDate);
     //While intWeekDay <> 2
     //    dtmWeekMonday = DateAdd(DateInterval.Weekday, -1, dtmWeekMonday)
     //End While
     dtmWeekMonday = dtmDate.AddDays(-((int)dtmDate.DayOfWeek) + 1);
     //strWeekMondayDate = Convert.ToString(DateValue(dtmWeekMonday));
     return dtmWeekMonday;
 }
Ejemplo n.º 13
0
 public System.DateTime StartingDate1(System.DateTime getDate)
 {
     System.DateTime startDate = default(System.DateTime);
         int i = 0;
         i = Weekday(getDate, DayOfWeek.Saturday);
         i = 8 - i;
         startDate = getDate.AddDays(i);
         return startDate;
 }
Ejemplo n.º 14
0
        private bool CheckDay(System.DateTime time)
        {
            if (!WeeklySession)
                return true;

            if (StartTime.CompareTo(EndTime) > 0)
            {
                //if session goes over midnight and it's the start session day,
                //make sure start day occurs in session
                if (time.DayOfWeek == StartDay)
                {
                    return time.TimeOfDay.CompareTo(StartTime) >= 0;
                }

                //likewise, if day is the end part of a session, verify
                //time occurs in session
                System.DateTime yesterday = time.AddDays(-1);
                if (yesterday.DayOfWeek == EndDay)
                {
                    return time.TimeOfDay.CompareTo(EndTime) <= 0;
                }
            }

            if(StartDay <= EndDay)
                return time.DayOfWeek.CompareTo(StartDay) >= 0 &&
                    time.DayOfWeek.CompareTo(EndDay) <= 0;
            else
                return time.DayOfWeek.CompareTo(EndDay) <=0 ||
                    time.DayOfWeek.CompareTo(StartDay) >=0;
        }
Ejemplo n.º 15
0
        private void PushSprintDates(int sprintNumber, System.DateTime newStartDate, System.DateTime newEndDate, ICollection<Sprint> sprints)
        {
            // make sure sprints are ordered by number
            Sprint[] orderedSprint = sprints.OrderBy(s => s.SprintNumber).ToArray();

            // finds the sprint
            Sprint sprint = orderedSprint.SingleOrDefault(s => s.SprintNumber == sprintNumber);
            if (sprint == null)
                return;

            if (sprintNumber >= 2) {
                Sprint previous = orderedSprint[sprintNumber - 2];
                if (newStartDate <= previous.StartDate.AddDays(1))
                    throw new WebFaultException<String>("BRE_SPRINT_START_DATE_NOT_ALLOWED", System.Net.HttpStatusCode.BadRequest);
            }

            if (newEndDate < sprint.StartDate)
                throw new WebFaultException<String>("BRE_SPRINT_END_DATE_NOT_ALLOWED", System.Net.HttpStatusCode.BadRequest);

            // get the number of days to push the sprints
            int pushDays = 0;
            int startDatePushDays = (sprintNumber == 1) ? newStartDate.Subtract(sprint.StartDate).Days : 0;

            // if is the first sprint and the start date was changed, it override the end date change
            if (startDatePushDays != 0) {
                newEndDate = newEndDate.AddDays(startDatePushDays);
                pushDays = startDatePushDays;
            } else {
                pushDays = newEndDate.Subtract(sprint.EndDate).Days;
            }

            if (newStartDate > newEndDate)
                throw new WebFaultException<String>("BRE_SPRINT_START_DATE_NOT_ALLOWED", System.Net.HttpStatusCode.BadRequest);

            // update the sprint start date
            sprint.StartDate = newStartDate;
            sprint.EndDate = newEndDate;

            // pushs the following sprints, if this one is not the last
            if (sprintNumber <= orderedSprint.Length && pushDays != 0) {

                for (int i = sprintNumber; i < orderedSprint.Length; i++) {
                    int days = calendar.CalcWorkDayCount(orderedSprint[i].StartDate, orderedSprint[i].EndDate);
                    orderedSprint[i].StartDate = calendar.AddWorkDays(orderedSprint[i - 1].EndDate, 1);
                    orderedSprint[i].EndDate = calendar.AddWorkDays(orderedSprint[i].StartDate, days);
                }
            }

            // moves the previus sprint end date one day before this one start date
            if (sprintNumber > 1)
                orderedSprint[sprintNumber - 2].EndDate = calendar.SubWorkDays(newStartDate, 1);
        }
Ejemplo n.º 16
0
 public static IEnumerable<DateTime> DaysBetween(this DateTime date1, DateTime date2)
 {
     for (var date = new[] { date1, date2 }.Min(); date <= new[] { date1, date2 }.Max(); date = date.AddDays(1))
         yield return date.Date;
 }
Ejemplo n.º 17
0
        private System.DateTime getFreeDate(System.DateTime trialDate)
        {
            if (eventTable.Rows.Count > 0)
            {
                System.DateTime testDate;
                bool trialDateOK = false;
                while (!trialDateOK)
                {
                    trialDateOK = true;
                    foreach (System.Data.DataRow testRow in eventTable.Rows)
                    {
                        testDate = (System.DateTime)testRow["EventDate"];
                        if (testDate.Date == trialDate.Date)
                        {
                            trialDateOK = false;
                            trialDate = trialDate.AddDays(1);
                        }
                    }

                }
            }
            return trialDate;
        }
Ejemplo n.º 18
0
 /// <summary>Months Between 2 dates this will output a decimal to 0dp
 /// <para>StartDate = Start Date for the calculation</para>
 /// <para>EndDate = End Date for the calculation</para>
 /// <para>roundup = round up months from mid point up</para>
 /// </summary>
 public int GetMonthsBetween(System.DateTime StartDate, System.DateTime EndDate, bool roundup)
 {
     if(roundup == true)
     {
         EndDate = EndDate.AddDays(1);
     }
     var monthDiff = Math.Abs((EndDate.Year * 12 + (EndDate.Month - 1)) - (StartDate.Year * 12 + (StartDate.Month - 1)));
     if (StartDate.AddMonths(monthDiff) > EndDate || EndDate.Day < StartDate.Day)
     {
         return monthDiff - 1;
     }
     else
     {
         return monthDiff;
     }
 }