Example #1
0
        public void AddHours_41_AreEqual()
        {
            var act = TestStruct.AddHours(41);
            var exp = new Date(1970, 02, 15);

            Assert.AreEqual(exp, act);
        }
Example #2
0
 public TimelineGetDTO()
 {
     Date        = DateTime.Now.Date;
     StartTime   = Date.AddHours(8);
     ShiftId     = 1;
     OrderAreaId = 1;
 }
Example #3
0
        // State
        private byte State(byte previousPattern)
        {
            Date = Date.AddHours(12);

            // If its Saturday afternoon exit
            if (Date.AddHours(12).DayOfWeek == DayOfWeek.Sunday)
            {
                return(0);
            }

            var caseSwitch = GetNextStep(previousPattern);

            // Get the next retail price
            var retailNextPrice = GetRetailPrice(Date.AddHours(+12));

            // If the next retail price if 0 thn exit
            if (retailNextPrice == 0)
            {
                return(0);
            }

            switch (caseSwitch)
            {
            case StalkMarketPatterns.Decreasing:
                return(State(StalkMarketPatterns.Decreasing));

            case StalkMarketPatterns.Spike:
                return(State(StalkMarketPatterns.Spike));

            case StalkMarketPatterns.Random:
                return(State(StalkMarketPatterns.Random));
            }

            return(0);
        }
Example #4
0
 public bool AddEvent(HourBasedCallEvent callEvent)
 {
     if (_maxSimultaneousCallsPerDay == null)
     {
         _maxSimultaneousCallsPerDay = new List <int>();
     }
     if (_maxSimultaneousCallsPerDay.Count < 1)
     {
         _maxSimultaneousCallsPerDay.Add(0);
     }
     if (callEvent.EventTime > Date.AddHours(1))
     {
         return(false);
     }
     if (callEvent.EventType == CallEventType.Start)
     {
         OngoingCalls++;
         if (OngoingCalls > _maxSimultaneousCallsPerDay[0])
         {
             _maxSimultaneousCallsPerDay[0] = OngoingCalls;
         }
         return(true);
     }
     OngoingCalls--;
     return(true);
 }
Example #5
0
        public void AddEvent()
        {
            if (!EditMode)
            {
                Date = Date.AddHours(Hour != null ? (double)Hour : 0);

                Date = Date.AddMinutes(Minutes != null ? (double)(Minutes) : 0);

                Event evnt = new Event(Text, Subtext, Date);

                OnAddedEvent?.Invoke(this, new DialogRoutedEventArgs()
                {
                    Object = evnt
                });
            }
            else
            {
                Event.Date = Event.Date.Date.AddHours((double)Hour);

                Event.Date = Event.Date.AddMinutes((double)Minutes);

                OnAddedEvent?.Invoke(this, new DialogRoutedEventArgs()
                {
                    Object = null
                });
            }
        }
Example #6
0
        public SaveResult Save()
        {
            try
            {
                int count = 1;
                Trip.Steps.Add(new Step(AddressStart, TypeStep.Start, count++));
                if (Steps != null)
                {
                    foreach (var item in Steps)
                    {
                        Trip.Steps.Add(new Step(item, TypeStep.Step, count++));
                    }
                }
                Trip.Steps.Add(new Step(AddressEnd, TypeStep.End, count++));

                Trip.Driver    = SessionHelper.CurrentUser;
                Trip.DateStart = Date.AddHours(Hours.Hour).AddMinutes(Hours.Minute);
                Trip.RoundTrip = RoundTrip == "on";
                Trip.Duration  = new TimeSpan(0, 0, 0, Duration);
                var res  = Trip.Save();
                var json = GoogleApi.GetGoogleDirection(AddressStart, AddressEnd, Steps);
                Container.Manager.VoyageGuidageOperation.Add(Container.Manager.VoyageOperation.GetById(res.Id), json);
                Container.Manager.Save();
                return(new SaveResult(true, Trip.Id));
            }
            catch (Exception ex)
            {
                Logger.Error(ex, "TripViewModel.Save()");
                return(new SaveResult(ex));
            }
        }
 // returns true if the given lawyer and time do not collide with this appointment; returns false on collision
 public bool LawyerIsAvailabile(int lawyerId, DateTime date)
 {
     if (lawyerId == LawyerId && ((date > Date && date < Date.AddHours(1)) || (date.AddHours(1) > Date && date.AddHours(1) < Date.AddHours(1))))
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
 // returns true, if the given room and time do not collide with this appointment; returns false on collision
 public bool RoomIsAvailable(int room, DateTime date)
 {
     if (room == (int)MeetingRoom && ((date > Date && date < Date.AddHours(1)) || (date.AddHours(1) > Date && date.AddHours(1) < Date.AddHours(1))))
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Example #9
0
 public HourBasedStatistics GetNext()
 {
     return(new HourBasedStatistics
     {
         Date = Date.AddHours(1.0),
         Hour = Date.AddHours(1.0).ToLocalTime().Hour,
         _maxSimultaneousCallsPerDay = new List <int> {
             OngoingCalls
         },
         OngoingCalls = OngoingCalls,
     });
 }
Example #10
0
 public DateTime GetNextDate(DateInfoType datePart)
 {
     if (datePart == DateInfoType.Day)
     {
         return(Date.AddDays(1));
     }
     if (datePart == DateInfoType.Hour)
     {
         return(Date.AddHours(1));
     }
     return(Date.AddMinutes(1));
 }
Example #11
0
        private void Initialize()
        {
            string sql = string.Format(@"select lot_id,cur_wafer_qty,prev_pd_id pd_id,prev_pd_name pd_name,c.description department
from mmview.fhopehs hs
left join
istrpt.rpt_prod_flow fl
on hs.pd_id=fl.pd_id
left join mmview.frcode c
on c.category_id='Department'
and c.code_id=fl.department
where ope_category ='OperationComplete'
 and claim_time between '{0} 08:00:00' and '{1} 08:00:00'
 and lot_type='Production'", Date.ToString("yyyy-MM-dd"), Date.AddDays(1).ToString("yyyy-MM-dd"));

            MoveCatcher = new DB2DataCatcher <RPT_Move_ByDepartmentModel>("", sql);
            var list = MoveCatcher.GetEntities().EntityList;

            // if (!list.Any()) return;
            sql           = string.Format("select c.description department,m.target_value from    ISTRPT.RPT_Move_Target m left join mmview.frcode c on c.category_id='Department' and c.code_id=m.dept_code where m.plan_date ='{0}'", Date.ToString("yyyy-MM-dd"));
            TargetCatcher = new DB2DataCatcher <Rpt_Move_Target>("", sql);
            var list_target = TargetCatcher.GetEntities().EntityList;
            var list_dept   = new ReqRptCommonDeptQuerier().DeptList;
            var wipQuier1   = new ReqRpt002WipQuerier(Date.AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"));
            var wipQuier2   = new ReqRpt002WipQuerier(Date.AddHours(20).ToString("yyyy-MM-dd HH:mm:ss"));
            var wipQuier3   = new ReqRpt002WipQuerier(Date.AddHours(32).ToString("yyyy-MM-dd HH:mm:ss"));

            foreach (var dept in list_dept)
            {
                var list_target_dept = list_target.Where(w => w.Department == dept.Description);
                var move             = new ReqRpt002MoveEntity();
                move.Department = dept.Description;
                move.MoveValue  = list.Where(w => w.Department == dept.Description).Sum(s => s.Cur_Wafer_Qty);
                move.MoveTarget = list_target_dept.Any() ? list_target_dept.First().Target_Value : 0;
                //判断查询时间是否为今天
                if (DateTime.Now.Date > Date.AddHours(8) && DateTime.Now.Date < Date.AddHours(32))
                {
                    var target = move.MoveTarget * (DateTime.Now - Date.AddHours(8)).TotalHours / 24;
                    move.Percentage = target == 0 ? -1 : move.MoveValue * 1.0 / target;
                }
                else
                {
                    move.Percentage = move.MoveTarget == 0 ? -1 : move.MoveValue * 1.0 / move.MoveTarget;
                }
                int    wip1 = GetWipOfDepartment(wipQuier1, dept.Description);
                int    wip2 = GetWipOfDepartment(wipQuier2, dept.Description);
                int    wip3 = GetWipOfDepartment(wipQuier3, dept.Description);
                double wip  = (wip1 + 2 * wip2 + wip3) / 4.0;
                move.AvaWip   = wip;
                move.TurnRate = wip == 0?-1: move.MoveValue / wip;
                MoveEntities.Add(move);
            }
        }
Example #12
0
        private void Initialze()
        {
            //今天的实时数据
            if (Date.AddHours(32) > DateTime.Now)
            {
                WipQuerier = new ReqRpt002WipQuerier(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            }
            else
            {
                //查询历史数据
                WipQuerier = new ReqRpt002WipQuerier(Date.AddHours(32).ToString("yyyy-MM-dd HH:mm:ss"));
            }
            TdMoveQuerier   = new ReqRpt002MoveQuerier(Date.ToString("yyyy-MM-dd"));
            YstdMoveQuerier = new ReqRpt002MoveQuerier(Date.AddDays(-1).ToString("yyyy-MM-dd"));
            WaferOutQuerier = new ReqRpt002WaferOutQuerier(Date.ToString("yyyy-MM-dd"));

            foreach (var dept in ModuleDepartments)
            {
                var entity = new ReqRpt002DepartmentTableRowEntity();
                SetRowEntity(entity, dept);
                DeptTableModuleRowEntities.Add(entity);
            }
            foreach (var dept in TestDepartment)
            {
                var entity = new ReqRpt002DepartmentTableRowEntity();
                SetRowEntity(entity, dept);
                DeptTableTestRowEntities.Add(entity);
            }
            foreach (var dept in BankDepartment)
            {
                var entity = new ReqRpt002DepartmentTableRowEntity();
                SetRowEntity(entity, dept);
                DeptTableBankRowEntities.Add(entity);
            }
            //ModuleTotal
            ModuleTotal.Department = "Module Total";
            SetTotalEntity(ModuleTotal, DeptTableModuleRowEntities);
            //TestTotal
            TestTotal.Department = "Test Total";
            SetTotalEntity(TestTotal, DeptTableTestRowEntities);
            //BankTotal
            DeptTableBankRowEntities[0].Department = "Normal Bank";
            BankTotal.Department = "Bank Total";
            SetTotalEntity(BankTotal, DeptTableBankRowEntities);
            //FabTotal
            FabTotal.Department = "Fab Total";
            SetTotalEntity(FabTotal, DeptTableModuleRowEntities.Union(DeptTableTestRowEntities).Union(DeptTableBankRowEntities).ToList());
            GetCtData();
            SetDevValue();
            WaferOutEntities    = WaferOutQuerier.WaferOutEntities;
            WaferOutTotalEntity = WaferOutQuerier.WaferOutTotalEntity;
        }
        private void GenerateTimeSlots()
        {
            // Generate a time slot for each time interval based on duration length
            this.TimeSlots = new List <TimeSlot>();
            int totalHours = StartingHour;

            for (int i = 0; i < NumberOfSlots; i++)
            {
                var slot = new TimeSlot(Date.AddHours(totalHours));
                totalHours += int.Parse(SlotDurationInHours.ToString());
                TimeSlots.Add(slot);
            }
        }
Example #14
0
        public IList <DateTime> ToList()
        {
            if (Rounding != DateListIncrementRounding.None)
            {
                RoundDate();
            }

            var targetCount = Math.Abs(Count);

            var dateList = new List <DateTime>();

            do
            {
                var step = StepSize * dateList.Count;

                switch (Increment)
                {
                case DateListIncrement.Second:
                    dateList.Add(Date.AddSeconds(step));
                    break;

                case DateListIncrement.Minute:
                    dateList.Add(Date.AddMinutes(step));
                    break;

                case DateListIncrement.Hour:
                    dateList.Add(Date.AddHours(step));
                    break;

                case DateListIncrement.Day:
                    dateList.Add(Date.AddDays(step));
                    break;

                case DateListIncrement.Month:
                    dateList.Add(Date.AddMonths(step));
                    break;

                case DateListIncrement.Year:
                    dateList.Add(Date.AddYears(step));
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            } while (dateList.Count < targetCount);

            return(dateList);
        }
        public override string ToString()
        {
            var s = new StringBuilder($"Group for {Course} with {Form} studing,\n" +
                                      $"\thas {Count} students,\n" +
                                      $"\tstarted learning {Date.ToShortDateString()},\n" +
                                      $"\ttraining: ");

            foreach (var i in TimeTable)
            {
                s.Append(i.ToString() + ", ");
            }

            s.Append($"from {Date.ToShortTimeString()} to {Date.AddHours(2).ToShortTimeString()}");

            return(s.ToString());
        }
        private void TaskButtonClick(object sender, RoutedEventArgs e)
        {
            try
            {
                Date = (DateTime)calendar.SelectedDate;
                DateTime time = (DateTime)timePicker.SelectedTime;
                Date = Date.AddHours(time.Hour).AddMinutes(time.Minute);
            }
            catch (Exception)
            {
                Date = DateTime.Now;
            }

            using (var context = new TasksContext())
            {
                context.Tasks.Add
                (
                    new Models.Task
                {
                    DateTime = Date.ToString("g"),

                    IsDownloadFile = downloadRadioButton.IsChecked,
                    IsMoveCatalog  = moveRadioButton.IsChecked,
                    IsEmailSend    = emailRadioButton.IsChecked,

                    IsSingly   = singlyRadioButton.IsChecked,
                    IsAnnually = annuallyRadioButton.IsChecked,
                    IsDaily    = dailyRadioButton.IsChecked,
                    IsWeekly   = weeklyRadioButton.IsChecked,

                    Url           = urlTextBox.Text,
                    WhereDownload = whereDownloadTextBox.Text,

                    WhatCopyCatalog  = whatCopyCatalogTextBox.Text,
                    WhereCopyCatalog = whereCopyCatalogTextBox.Text,

                    ToEmail    = toEmailTextBox.Text,
                    Thema      = thema.Text,
                    Attachment = PathAttachment
                }
                );
                context.SaveChanges();
            }
        }
        private void ExecuteAccept()
        {
            if (Delivered.Count > 0 && Delivered.First().ProductId != 0)
            {
                try
                {
                    Date = Date.Date;
                    Date = Date.AddHours(Time.Hour);
                    Date = Date.AddMinutes(Time.Minute);
                    if (Date > DateTime.Now)
                    {
                        Date = DateTime.Now;
                    }
                    CreatedSupply.Date = Date;
                    CreatedSupply.DeliveredToWareHouse = Delivered;

                    using (ProductRepository productRepository = new ProductRepository())
                    {
                        foreach (var delivered in Delivered)
                        {
                            Product deliveredProduct = productRepository.GetById(delivered.ProductId);
                            deliveredProduct.Amount += delivered.Amount;
                            productRepository.SaveChanges();
                        }
                    }

                    SupplyRepository.Add(CreatedSupply);
                    SupplyRepository.SaveChanges();
                    (View.Owner.DataContext as SupplyViewModel).Update();
                    View.Close();
                }
                catch (Exception)
                {
                    MessageBox.Show("Непредвиденная ошибка");
                }
            }
            else
            {
                MessageBox.Show("Таблица не может быть пустой или содержать нулевые значения");
            }
        }
Example #18
0
        private void UpdateCurrentAction()
        {
            var time = ServiceLocator.GetService <IDateTimeService>().GetCurrentTime();

            foreach (var item in Timetable)
            {
                var startTime = Date.AddHours(item.Parent.Start.Value.Hour).AddMinutes(item.Parent.Start.Value.Minute);
                var endTime   = Date.AddHours(item.Parent.End.Value.Hour).AddMinutes(item.Parent.End.Value.Minute);
                if ((startTime <= time) && (time <= endTime))
                {
                    item.Color = Color.FromHex("#10ff007b");
                }
                else if (endTime < time)
                {
                    item.Color = Color.FromHex("#88CBCBCB");
                }
                else
                {
                    item.Color = Color.Transparent;
                }
            }
        }
Example #19
0
        private void FillCommand_Execute(object obj)
        {
            var item = (Timesheet)obj;

            var previousItem = Items.LastOrDefault(x => x.Id != item.Id && x.EndTime <= item.StartTime);
            var nextItem     = Items.FirstOrDefault(x => x.Id != item.Id && x.StartTime >= item.EndTime);

            var dayStartTime = Parent.GetDayStartTime(Date);
            var dayEndTime   = Parent.GetDayEndTime(Date);

            DateTime?startTime, endTime;

            if (dayStartTime == null && dayEndTime == null)
            {
                startTime = Date.AddHours(CalendarConstants.WorkDayStartHour);
                endTime   = startTime.Value.AddHours((double)CalendarConstants.HoursWorkWeek / CalendarConstants.DaysWorkWeek);
            }
            else
            {
                startTime = previousItem != null ? previousItem.EndTime : dayStartTime;
                endTime   = nextItem != null ? nextItem.StartTime : (Date == DateTime.Today ? DateTime.Now.RoundByMinute(CalendarConstants.IntervalMinute) : dayEndTime);
            }

            //startTime = (previousItem != null ? previousItem.EndTime : dayStartTime) ?? Date.AddHours(CalendarConstants.WorkDayStartHour);
            //endTime = (nextItem != null ? nextItem.StartTime : (Date == DateTime.Today ? DateTime.Now.RoundByMinute(CalendarConstants.IntervalMinute) : dayEndTime)) ?? startTime.AddHours((double)CalendarConstants.HoursWorkWeek/CalendarConstants.DaysWorkWeek);

            if (startTime != null && endTime != null)
            {
                item.StartTime = startTime.Value;
                item.EndTime   = endTime.Value;

                Parent.UpdateTimesheetTime(item.Id, item.StartTime, item.EndTime);

                UpdateItem(item);
            }
        }
Example #20
0
 /// <summary>
 /// Get value for the hours at specified step.
 /// </summary>
 /// <param name="steps">Step.</param>
 /// <returns>Formatted hours.</returns>
 protected string HoursValue(int steps)
 {
     return(Date.AddHours(steps * HoursStep).ToString(AMPM ? HoursAMPMFormat : HoursFormat, Culture));
 }
Example #21
0
        /// <summary>
        /// Calculates rise and set time
        /// Caveat: does not consider more than one rise and one set event
        /// </summary>
        /// <returns></returns>
        public Task <bool> Calculate()
        {
            return(Task.Run(async() => {
                // Check rise and set events in two hour periods
                var offset = 0;

                do
                {
                    // Shift date by offset
                    var offsetDate = Date.AddHours(offset);

                    // Get three body locations for date, date + 1 hour and date + 2 hours
                    var bodyAt0 = GetBody(offsetDate);
                    var bodyAt1 = GetBody(offsetDate.AddHours(1));
                    var bodyAt2 = GetBody(offsetDate.AddHours(2));

                    await Task.WhenAll(bodyAt0.Calculate(), bodyAt1.Calculate(), bodyAt2.Calculate());

                    var location = new NOVAS.OnSurface()
                    {
                        Latitude = Latitude,
                        Longitude = Longitude
                    };

                    // Adjust altitude for the three body parameters
                    var altitude0 = AdjustAltitude(bodyAt0);
                    var altitude1 = AdjustAltitude(bodyAt1);
                    var altitude2 = AdjustAltitude(bodyAt2);

                    // fit the three reference positions into a quadratic equation

                    //P1 (offsetDate | altitude0) => (0 | altitude0)
                    //P2 (offsetDate + 1 | altitude1) => (1 | altitude1)
                    //P3 (offsetDate + 2 | altitude2) => (2 | altitude2)

                    // ax² + bx + c

                    // Solve for c
                    // => altitude0 = 0 * x² + 0 * x + c => altitude0 = c

                    // Solve for b using c
                    // altitude1 = a * 1² + b * 1 + altitude0
                    //    => altitude1 = a + b + altitude0
                    //    => b = altitude1 - a - altitude0

                    // Solve for a using b and c
                    // altitude2 = a * 2² + b * 2 + altitude0
                    //   => altitude2 = 4a + 2(altitude1 - a - altitude0) + altitude0
                    //   => altitude2 = 4a + 2*altitude1 - 2a - 2*altitude0 + altitude0
                    //   => altitude2 = 2a + 2*altitude1 - altitude0
                    //   => 2a = altitude2 - 2*altitude1 + altitude0
                    //   => a = 0.5 * altitude2  - altitude1 + 0.5 * altitude0
                    //   => a = 0.5 * (altitude2 + altitude0) - altitude1

                    // Solve for b using a and c
                    //   => b = altitude1 - (0.5 * (altitude2 + altitude0) - altitude1) - altitude0
                    //   => b = altitude1 - 0.5 * altitude2 - 0.5 * altitude0 + altitude1 - altitude0
                    //   => b = 2 * altitude1 - 0.5 * altitude2 - 1.5 * altitude0

                    var a = 0.5 * (altitude2 + altitude0) - altitude1;
                    var b = 2 * altitude1 - 0.5 * altitude2 - 1.5 * altitude0;
                    var c = altitude0;

                    // a-b-c formula
                    // x = -b +- Sqrt(b² - 4ac) / 2a

                    // Discriminant definition: b² - 4ac
                    var discriminant = (Math.Pow(b, 2)) - (4.0 * a * c);

                    var zeroPoint1 = double.NaN;
                    var zeroPoint2 = double.NaN;
                    var events = 0;

                    if (discriminant == 1)
                    {
                        zeroPoint1 = (-b + Math.Sqrt(discriminant)) / (2 * a);
                        if (zeroPoint1 >= 0 && zeroPoint1 <= 2)
                        {
                            events++;
                        }
                    }
                    else if (discriminant > 1)
                    {
                        zeroPoint1 = (-b + Math.Sqrt(discriminant)) / (2 * a);
                        zeroPoint2 = (-b - Math.Sqrt(discriminant)) / (2 * a);

                        // Check if zero point is inside the span of 0 to 2 (to be inside the checked timeframe)
                        if (zeroPoint1 >= 0 && zeroPoint1 <= 2)
                        {
                            events++;
                        }
                        if (zeroPoint2 >= 0 && zeroPoint2 <= 2)
                        {
                            events++;
                        }
                        if (zeroPoint1 < 0 || zeroPoint1 > 2)
                        {
                            zeroPoint1 = zeroPoint2;
                        }
                    }

                    //find the gradient at zeroPoint1. positive => rise event, negative => set event
                    var gradient = 2 * a * zeroPoint1 + b;

                    if (events == 1)
                    {
                        if (gradient > 0)
                        {
                            // rise
                            this.Rise = offsetDate.AddHours(zeroPoint1);
                        }
                        else
                        {
                            // set
                            this.Set = offsetDate.AddHours(zeroPoint1);
                        }
                    }
                    else if (events == 2)
                    {
                        if (gradient > 0)
                        {
                            // rise and set
                            this.Rise = offsetDate.AddHours(zeroPoint1);
                            this.Set = offsetDate.AddHours(zeroPoint2);
                        }
                        else
                        {
                            // set and rise
                            this.Rise = offsetDate.AddHours(zeroPoint2);
                            this.Set = offsetDate.AddHours(zeroPoint1);
                        }
                    }
                    offset += 2;
                    //Repeat until rise and set events are found, or after a whole day
                } while (!((this.Rise != null && this.Set != null) || offset > 24));

                return true;
            }));
        }
Example #22
0
        public static DateTime ToDateTime(this string StrDateTime)
        {
            DateTime Date = new DateTime();

            if (!string.IsNullOrWhiteSpace(StrDateTime))
            {
                StrDateTime = StrDateTime.Trim();
                string StrDate = "";
                string StrTime = "";
                string AMPM    = "";
                bool   IsPM    = false;

                if (StrDateTime.IndexOf(" ") > 8 && StrDateTime.Split(' ').Count() == 2)
                {
                    StrDate = StrDateTime.Split(' ')[0];
                    StrTime = StrDateTime.Split(' ')[1];
                }
                else if (StrDateTime.IndexOf(" ") > 8 && StrDateTime.Split(' ').Count() == 3)
                {
                    StrDate = StrDateTime.Split(' ')[0];
                    StrTime = StrDateTime.Split(' ')[1];
                    AMPM    = StrDateTime.Split(' ')[2];
                    IsPM    = AMPM.ToLower() == "pm";
                }
                else
                {
                    StrDate = StrDateTime;
                }

                #region Date
                var Datevalues = StrDate.Trim().Split('/');
                if (Datevalues.Length == 3)
                {
                    int Day   = 0;
                    int Month = 0;
                    int Year  = 0;
                    if (int.TryParse(Datevalues[0], out Month) && Month > 0 && Month < 13 &&
                        int.TryParse(Datevalues[1], out Day) && Day > 0 && Day < 32 &&
                        int.TryParse(Datevalues[2], out Year) && Year > 1980)
                    {
                        Date = new DateTime(Year, Month, Day);
                    }
                }
                #endregion

                #region Time
                if (Date != new DateTime() && !string.IsNullOrWhiteSpace(StrTime))
                {
                    //if(StrTime.IndexOf(" ") > 2)
                    //{
                    //    StrTime = StrTime.Split(' ')[0];
                    //    IsPM = StrTime.Split(' ')[1].ToLower() == "pm";
                    //}

                    var Timevalues = StrTime.Trim().Split(':');
                    #region AddTime
                    if (Timevalues.Length > 1 && Timevalues.Length < 4)
                    {
                        int Hour   = 0;
                        int Munite = 0;
                        int Second = 0;

                        if (int.TryParse(Timevalues[0], out Hour) && Hour > -1 && Hour < 24)
                        {
                            if (IsPM && Hour < 13)
                            {
                                Hour += 12;
                            }

                            Date = Date.AddHours(Hour);
                        }
                        if (int.TryParse(Timevalues[1], out Munite) && Munite > -1 && Munite < 60)
                        {
                            Date = Date.AddMinutes(Munite);
                        }
                        if (Timevalues.Length > 2 && int.TryParse(Timevalues[2], out Second) && Second > -1 && Second < 60)
                        {
                            Date = Date.AddSeconds(Second);
                        }
                    }
                    #endregion
                }
                #endregion
            }
            return(Date);
        }
Example #23
0
        private byte GetNextStep(byte prevPattern)
        {
            // Get the retail price of the day
            var retailPrice = GetRetailPrice();
            // Get the last retail price
            var retailLastPrice = GetRetailPrice(Date.AddHours(-12));

            // Random
            if (prevPattern == StalkMarketPatterns.Random)
            {
                if (retailPrice >= 110 && retailPrice >= BuyingPrice)
                {
                    if (SellingDate == null)
                    {
                        SellingDate  = Date;
                        SellingPrice = retailPrice;
                    }

                    if (SellingDate != null && retailPrice > GetRetailPrice((DateTime)SellingDate))
                    {
                        SellingDate  = Date;
                        SellingPrice = retailPrice;
                    }
                }

                return(StalkMarketPatterns.Random);
            }

            // Decreasing
            if (prevPattern == StalkMarketPatterns.Decreasing)
            {
                if (retailLastPrice > retailPrice)
                {
                    if (Date.AddHours(12).DayOfWeek == DayOfWeek.Friday &&
                        Pattern != StalkMarketPatterns.LowSpike && Pattern != StalkMarketPatterns.HighSpike)
                    {
                        Pattern      = StalkMarketPatterns.Decreasing;
                        SellingDate  = Date;
                        SellingPrice = retailPrice;
                        return(StalkMarketPatterns.Sell);
                    }

                    return(StalkMarketPatterns.Decreasing);
                }
                else if (retailPrice > retailLastPrice)
                {
                    return(StalkMarketPatterns.Spike);
                }
                else
                {
                    return(StalkMarketPatterns.Random);
                }
            }

            // Spike
            if (prevPattern == StalkMarketPatterns.Spike)
            {
                if (Date.AddHours(12).DayOfWeek >= DayOfWeek.Wednesday)
                {
                    if (retailPrice > retailLastPrice &&
                        retailLastPrice > GetRetailPrice(Date.AddHours(-24)) &&
                        GetRetailPrice(Date.AddHours(-24)) > GetRetailPrice(Date.AddHours(-36)))
                    {
                        if (retailPrice >= 300)
                        {
                            Pattern      = StalkMarketPatterns.HighSpike;
                            SellingDate  = Date;
                            SellingPrice = retailPrice;
                            return(StalkMarketPatterns.Sell);
                        }
                    }
                }

                if (Date.DayOfWeek >= DayOfWeek.Wednesday)
                {
                    if (retailPrice > retailLastPrice &&
                        retailLastPrice > GetRetailPrice(Date.AddHours(-24)) &&
                        GetRetailPrice(Date.AddHours(-24)) > GetRetailPrice(Date.AddHours(-36)) &&
                        GetRetailPrice(Date.AddHours(-36)) > GetRetailPrice(Date.AddHours(-48)))
                    {
                        Pattern      = StalkMarketPatterns.LowSpike;
                        SellingDate  = Date;
                        SellingPrice = retailPrice;
                        return(StalkMarketPatterns.Sell);
                    }
                }

                Pattern = StalkMarketPatterns.LowSpike;
                return(StalkMarketPatterns.Spike);
            }

            return(0);
        }
Example #24
0
 public DateTime GetCurrentTime()
 {
     return(Date.AddHours(Hours).AddMinutes(Minutes));
 }
Example #25
0
 public void SetTime()
 {
     Date = Date.AddHours(Time.Hours);
     Date = Date.AddMinutes(Time.Minutes);
 }
Example #26
0
 /// <summary>
 /// Get value for the AM-PM at specified step.
 /// </summary>
 /// <param name="steps">Step.</param>
 /// <returns>Formatted AM-PM.</returns>
 protected virtual string AMPMValue(int steps)
 {
     return(Date.AddHours(steps * 12).ToString(AMPMFormat, Culture));
 }
Example #27
0
 public DateTime ToDateTime()
 {
     return(Date.AddHours(Hour).AddMinutes(Minute));
 }
Example #28
0
    static void Main()
    {
        //02.02.2015 23:36:32
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("bg-BG");
        CultureInfo timeFormat = CultureInfo.CreateSpecificCulture("bg-BG");

        Console.Write("Enter first date in format \"dd.MM.yyyy HH:mm:ss\": ");
        string DateInput = Console.ReadLine();

        DateTime Date;
        bool     TryParseFirst = DateTime.TryParseExact(DateInput, "d.MM.yyyy HH:mm:ss", timeFormat, DateTimeStyles.None, out Date);

        if (TryParseFirst == false)
        {
            Console.WriteLine("\nInvalid Date format!\n\n");
            Main();
        }
        else
        {
            Console.WriteLine("\nAfter 6 hours and 30 minutes: {0:(dddd) dd.MM.yyyy HH:mm:ss}\n ", Date.AddHours(6).AddMinutes(30));
        }
    }
Example #29
0
 // Μέθοδο που προσθέτει ώρες στην ημερομηνία
 public void AddHours(double hours)
 {
     Date = Date.AddHours(hours);
 }