Beispiel #1
0
        public static int GetFrequency(ITashaPerson person, Activity activity, Random random, int maxFrequency,
                                       Time startTime, Time endTime, int householdPD, int workPD, GenerationAdjustment[] generationAdjustments)
        {
            bool feasibleFreq = false;
            int  freq         = 0;

            while (!feasibleFreq)
            {
                freq = Distribution.GetRandomFrequencyValue(
                    0, maxFrequency, random, Distribution.GetDistributionID(person, activity), householdPD, workPD, generationAdjustments);
                if (freq == 0)
                {
                    break;
                }
                if (!Distribution.GetRandomStartTimeFrequency(
                        Distribution.GetDistributionID(person, activity), freq,
                        Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out Time duration))
                {
                    //a bad thing happens here
                }
                else if (duration != Time.Zero)
                {
                    feasibleFreq = true;
                }
            }

            return(freq);
        }
Beispiel #2
0
        internal static bool GetDuration(ITashaHousehold household, Activity activity, Time startTime, Random random, out Time duration)
        {
            int length = Scheduler.StartTimeQuanta - 1 - Distribution.TimeOfDayToDistribution(startTime);

            return(Distribution.GetRandomStartDurationTimeFrequency(Distribution.GetDistributionID(household, activity), startTime, 0, length, random,
                                                                    out duration));
        }
Beispiel #3
0
 internal static bool GetStartTime(ITashaHousehold household, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time ourStartTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(household, activity),
                                                     frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out ourStartTime));
 }
Beispiel #4
0
 /// <summary>
 /// Gets a startTime between the given startTime and endTime
 /// </summary>
 /// <param name="person"></param>
 /// <param name="activity"></param>
 /// <param name="frequency"></param>
 /// <param name="startTime"></param>
 /// <param name="endTime"></param>
 /// <param name="random"></param>
 /// <param name="returnTime"></param>
 /// <returns></returns>
 internal static bool GetStartTime(ITashaPerson person, Activity activity, int frequency, Time startTime, Time endTime, Random random, out Time returnTime)
 {
     return(Distribution.GetRandomStartTimeFrequency(Distribution.GetDistributionID(person, activity),
                                                     frequency, Distribution.TimeOfDayToDistribution(startTime), Distribution.TimeOfDayToDistribution(endTime), random, out returnTime));
 }