jobElement.CreationDate = jobElement.CreationDate + TimeSpan.FromHours(24.0);
我想有沒有嚴格的24小時,但與+ - 10秒緩衝。像23.59.10和00.00.10
熱到達與c#?
jobElement.CreationDate = jobElement.CreationDate + TimeSpan.FromHours(24.0);
我想有沒有嚴格的24小時,但與+ - 10秒緩衝。像23.59.10和00.00.10
熱到達與c#?
這將產生CreationDate + 23:50和CreationDate + 24:10以相同的概率:
Random random = new Random();
TimeSpan buffer = TimeSpan.FromSeconds(10);
TimeSpan span = TimeSpan.FromHours(24.0);
// 50% of the time do this
if(random.Next() % 2 == 0)
{
span += buffer;
}
// The rest of the time do this
else
{
span -= buffer;
}
jobElement.CreationDate = jobElement.CreationDate + span;
你需要做什麼?
如果您需要進行任何比較,請使用覆蓋的相等運算符創建自定義類。
如果你想+/- 10與所有數字
Random r = new Random();
int x = r.Next(-10, 11);
var ts = TimeSpan.FromHours(24).Add(TimeSpan.FromSeconds((double)x));
jobElement.CreationDate = jobElement.CreationDate + ts;
r.Next:第二個參數是'返回的隨機數的唯一上限。 maxValue必須大於或等於minValue.'所以r.Next(-10,11) – xanatos 2011-03-17 10:21:29
我不是100%確定要在這裏,但我給它一個鏡頭
DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddDays(1).AddSeconds(8);
這兩個現在在24小時08秒AP什麼藝術。
然後,如果你想看看他們是「幾乎」24小時APPART,你可以做這樣的事情:
if(Math.Abs((dt1-dt2.AddDays(-1))) < 10){
//dt2 is 24 after dt1 +- 10 seconds
}else{
//they are not
}
當前日期的第一次(00.00.00) -/+ 10秒會是:
DateTime dateFrom = jobElement.CreationDate.Date.AddSeconds(-10);
DateTime dateTo = jobElement.CreationDate.Date.AddSeconds(10);
是不是這樣?
我會添加這個變體。它是與別人不同,因爲它不是「第二個依據」,但根據「嘀」(刻度是一個時間跨度/日期時間可以計算的最小時間)
const int sec = 10; // +/- seconds of the "buffer"
const int ticksSec = 10000000; // There are 10000000 Ticks in a second
Random r = new Random();
int rng = r.Next(-sec * ticksSec, sec * ticksSec + 1); // r.Next is upper-bound exclusive
var ts = TimeSpan.FromHours(24) + TimeSpan.FromTicks(rng);
jobElement.CreationDate = jobElement.CreationDate + ts;
裏有Random
類的限制(它可以生成一個long,並生成一個「約束」long(long和maxValue = x)不僅僅基於Random類是非平凡的,所以這將工作長達3分鐘,並且「緩衝區」(214秒)
因此,你有兩個日期時間,並希望看到它們(幾乎)相隔24小時? – 2011-03-17 10:04:35
順便說一句,+ 10秒緩衝區將從23.59.50到00.00.10。 – 2011-03-17 10:06:53
是的,我想要得到它 – 2011-03-17 10:08:11