Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用+;-10秒缓冲?_C#_Datetime_Buffer - Fatal编程技术网

C# 如何使用+;-10秒缓冲?

C# 如何使用+;-10秒缓冲?,c#,datetime,buffer,C#,Datetime,Buffer,我有: 我希望没有严格的24小时,但有+-10秒的缓冲。比如23.59.10和00.00.10 用c#?你需要用它做什么 如果需要进行任何比较,请使用覆盖的相等运算符创建自定义类 你需要用它做什么 如果需要进行任何比较,请使用覆盖的相等运算符创建自定义类 如果您想要+/-10且所有数字介于 jobElement.CreationDate = jobElement.CreationDate + TimeSpan.FromHours(24.0); 如果你想要+/-10,所有数字在 jobEleme

我有:

我希望没有严格的24小时,但有+-10秒的缓冲。比如23.59.10和00.00.10


用c#?

你需要用它做什么


如果需要进行任何比较,请使用覆盖的相等运算符创建自定义类

你需要用它做什么


如果需要进行任何比较,请使用覆盖的相等运算符创建自定义类

如果您想要+/-10且所有数字介于

jobElement.CreationDate = jobElement.CreationDate + TimeSpan.FromHours(24.0);

如果你想要+/-10,所有数字在

jobElement.CreationDate = jobElement.CreationDate + TimeSpan.FromHours(24.0);

这将以相同的概率生成CreationDate+23:50和CreationDate+24: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;

这将以相同的概率生成CreationDate+23:50和CreationDate+24: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;

我不是100%确定你想要什么,但我会试一试

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;
这两个现在相隔24小时8秒

然后,如果你想看看他们是否“几乎”是24小时穿着的,你可以这样做:

DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddDays(1).AddSeconds(8);
if(Math.Abs((dt1-dt2.AddDays(-1)))<10){
//dt1+-10秒后,dt2为24
}否则{
//它们不是
}

我不能100%确定你想要什么,但我会试试看

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;
这两个现在相隔24小时8秒

然后,如果你想看看他们是否“几乎”是24小时穿着的,你可以这样做:

DateTime dt1 = DateTime.Now;
DateTime dt2 = DateTime.Now.AddDays(1).AddSeconds(8);
if(Math.Abs((dt1-dt2.AddDays(-1)))<10){
//dt1+-10秒后,dt2为24
}否则{
//它们不是
}
当前日期的第一次时间(00.00.00)-/+10秒为:

if( Math.Abs((dt1-dt2.AddDays(-1))) < 10 ){
  //dt2 is 24 after dt1 +- 10 seconds 
}else{
  //they are not
}
是吗?

当前日期的第一次(00.00.00)-/+10秒是:

if( Math.Abs((dt1-dt2.AddDays(-1))) < 10 ){
  //dt2 is 24 after dt1 +- 10 seconds 
}else{
  //they are not
}

是吗?

我将添加此变体。它不同于其他类型,因为它不是基于“秒”,而是基于“滴答声”(滴答声是TimeSpan/DateTime可以计算的最小时间)


Random
类中有一些限制(它不能生成long,并且仅根据Random类生成一个“受限”long(一个maxValue=x的long)是非常重要的,因此它最多可以工作3分钟,并有一些“缓冲”(更准确地说是214秒).

我将添加此变量。它与其他变量不同,因为它不是基于“秒”,而是基于“滴答声”(滴答声是TimeSpan/DateTime可以计算的最小时间)


Random
类有一些限制(它不能生成一个long,而生成一个“受限”long(一个maxValue=x的long)仅基于Random类是非常重要的,因此这将工作3分钟,并有一些“缓冲区”(更准确地说是214秒)。

因此您有两个datetime,希望看到它们是什么(差不多)相隔24小时?顺便说一句,一个+-10秒的缓冲时间是从23.59.50到00.00.10。没错,我想知道它。你能不能提供一些背景信息,说明为什么你希望约会中出现这种不精确的情况?我的直觉是,你可能对一些潜在问题使用了错误的方法。所以你有两个datetime,你想看看它们是什么(差不多)相隔24小时?顺便说一句,+-10秒的缓冲时间是从23.59.50到00.00.10。是的,我想知道它。你能提供一些关于为什么你希望在约会中出现这种不精确的上下文信息吗?我的直觉是,你可能对一些潜在问题使用了错误的方法。r.下一步:第二个参数是
独家上限返回的随机数的上限。maxValue必须大于或等于minValue。
So r.Next(-10,11)r.Next:第二个参数是
返回的随机数的唯一上限。maxValue必须大于或等于minValue。
So r.Next(-10,11)