小编Mat*_*int的帖子

使用Javascript中的时间跨度

已经使用Date.js,但如果需要也可以使用其他库.

不确定使用时间增量的最佳方法是什么.具体来说,我想显示从现在到过去的日期时间之间经过的时间.

所以我需要做这样的事情:

var elapsed_time = new Date() - pastDate;
pastDate.toString('days-hours-minutes-seconds');
Run Code Online (Sandbox Code Playgroud)

得到它主要使用Date.js工作,但问题是现在我正在使用Date对象而不是时间跨度,所以应该是23小时的时间跨度是在Date的第一次之后23小时:

var result = (new Date()) - past_date;
"result" is the number (probably milliseconds): 15452732
var result = (new Date() - past_date
"result" is a date from 1969: Wed Dec 31 1969 23:17:32

我需要的是:

0 days 23 hours 17 minutes and 32 seconds

有任何想法吗?

javascript datetime timespan date datejs

22
推荐指数
4
解决办法
9万
查看次数

如何在.NET 4.0中使用Microsoft.Bcl.Async支持TransactionScope中的异步方法?

我有一个类似的方法:

public async Task SaveItemsAsync(IEnumerable<MyItem> items)
{
    using (var ts = new TransactionScope())
    {
        foreach (var item in items)
        {
            await _repository.SaveItemAsync(item);
        }

        await _repository.DoSomethingElse();

        ts.Complete();
    }
}
Run Code Online (Sandbox Code Playgroud)

这当然有问题,因为TransactionScopeasync/await不能很好用.

它失败并显示InvalidOperationException消息:

"TransactionScope必须放在与它创建的同一个线程上."

TransactionScopeAsyncFlowOption这个答案中读到了,这似乎正是我所需要的.

但是,对于这个特定项目,我很难支持.Net 4.0,无法升级到4.5或4.5.1.因此,我的项目中的异步/等待行为由Microsoft.Bcl.Async NuGet包提供.

我似乎无法TransactionScopeAsyncFlowOption在这个或任何其他OOB包中找到.我只是在某个地方错过了吗?

如果没有,是否有其他方法可以达到相同的效果?也就是说 - 我希望事务范围正确完成或回滚,尽管跨越线程有延续.

DoSomethingElse在上面的示例中添加了说明在事务范围内可能有多个调用,因此在一次调用中简单地将所有项目传递给数据库是不可行的选择.

在它的事项的情况下,库使用直接ADO.Net( ,SqlConnection,SqlCommand等)写入到SQL Server.

UPDATE

我以为我有一个解决方案,涉及从.Net 4.5.1中获取System.Transactions.dll并将其包含在我的项目中.但是,我发现这只适用于我的开发盒,因为它已经安装了4.5.1.部署到仅具有.Net 4.0的计算机时,它不起作用.它只是给了一个MissingMethodException.我正在寻找一种适用于.Net 4.0安装的解决方案.

.net c# .net-4.0 transactionscope async-await

22
推荐指数
1
解决办法
7983
查看次数

Django日历小部件在自定义窗体中

我正在尝试将日历日期输入添加到我的一个表单中.Django在其管理页面上使用了一个精彩的日历小部件,但我无法弄清楚如何将其添加到自定义表单中.

我在这里找到了关于同一主题的其他几个问题,但它们似乎都已过时,复杂且无法正常工作.

有没有办法将Django内置的日历小部件包含在我的一个表单中?

django django-forms

21
推荐指数
4
解决办法
5万
查看次数

如何将时间转换为iPhone设备的时区?

我在EST时区有一段时间,它是在mysql服务器上使用NOW()函数完成的.因为我的服务器位于EST,所以存储的时间是EST.当我从iPhone上的应用程序中检索它时,我需要在用户的正确时区显示它.我怎么做?

mysql iphone timezone datetime

20
推荐指数
1
解决办法
3万
查看次数

为什么在不使用async/await关键字时异步单元测试失败?

根据这个讨论,以下两种方法应该没有区别:

public async Task Foo()
{
    await DoSomethingAsync();
}

public Task Foo()
{
    return DoSomethingAsync();
}
Run Code Online (Sandbox Code Playgroud)

实际上,似乎对于非常简单的方法,没有 async/await关键字的调用将是首选,因为它们会消除一些开销.

然而,这显然并不总是在单元测试中起作用.

MSTest的

[TestClass]
public class AsyncTest
{
    [TestMethod]
    public async Task Test1()
    {
        await Task.Delay(0);
    }

    [TestMethod]
    public Task Test2()
    {
        return Task.Delay(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

NUnit的

[TestFixture]
public class AsyncTest
{
    [Test]
    public async Task Test1()
    {
        await Task.Delay(0);
    }

    [Test]
    public Task Test2()
    {
        return Task.Delay(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

的xUnit

public class AsyncTest
{
    [Fact]
    public async Task Test1() …
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing mstest async-await

19
推荐指数
1
解决办法
7960
查看次数

Windows FILETIME结构是否包含闰秒?

根据Microsoft文档,该FILETIME结构从1601年1月1日开始计算(可能是当天的开始),但是这包括闰秒吗?

windows datetime filetime leap-second

18
推荐指数
3
解决办法
4900
查看次数

是否有一种简单的方法可以返回带有异常的任务?

我的理解是这return Task.FromResult(foo)是一个简单的简写:

var tcs = new TaskCompletionSource<TFoo>();
tcs.SetResult(foo);
return tcs.Task;
Run Code Online (Sandbox Code Playgroud)

是否有一些等效的任务返回异常状态?

var tcs = new TaskCompletionSource<TFoo>();
tcs.SetException(new NotSupportedException()); // or whatever is appropriate
return tcs.Task;
Run Code Online (Sandbox Code Playgroud)

我没有看到任何类似的东西Task.FromException.或者在不返回任务的情况下抛出异常会更合适吗?

c# task-parallel-library async-await

17
推荐指数
2
解决办法
9025
查看次数

是否可以使用Raven Management Studio连接到嵌入式数据库

我正在玩Raven DB,我想知道是否可以使用Raven Management Studio连接到嵌入式数据库.有没有人这样做过?

ravendb ravendb-studio

16
推荐指数
1
解决办法
4371
查看次数

我应该如何填写Noda Time的IANA/Olson时区列表?

我在应用程序中使用NodaTime,我需要用户从下拉列表中选择他们的时区.我有以下软要求:

1)该列表仅包含对于真实场所现在和将来合理有效的选择.应过滤掉历史,模糊和通用时区.

2)列表应首先按UTC偏移量排序,然后按时区名称排序.这有希望将它们置于对用户有意义的顺序中.

我写了下面的代码,它确实有效,但并不完全是我所追求的.可能需要调整滤波器,我宁愿让偏移代表基本(非dst)偏移,而不是当前偏移.

建议?建议?

var now = Instant.FromDateTimeUtc(DateTime.UtcNow);
var tzdb = DateTimeZoneProviders.Tzdb;
var list = from id in tzdb.Ids
           where id.Contains("/") && !id.StartsWith("etc", StringComparison.OrdinalIgnoreCase)
           let tz = tzdb[id]
           let offset = tz.GetOffsetFromUtc(now)
           orderby offset, id
           select new
           {
               Id = id,
               DisplayValue = string.Format("({0}) {1}", offset.ToString("+HH:mm", null), id)
           };

// ultimately we build a dropdown list, but for demo purposes you can just dump the results
foreach (var item in list)
    Console.WriteLine(item.DisplayValue);
Run Code Online (Sandbox Code Playgroud)

timezone nodatime

16
推荐指数
1
解决办法
6466
查看次数

如何到达下一个工作日,不包括周末和假日

我有一个要求,我需要在日期字段上工作,所以要求是这样的事情

我将该字段称为最小可能日期

  1. 在日期中添加+1

  2. 如果最小可能日期恰好在添加1天后的周末(周六或周日),则显示下一个工作日,即周一

  3. 如果最小可能日期恰好落在假期,则显示下一个工作日.(假期1.1,1.5,3.10,25.12,26.12)

  4. 如果最小可能日期恰好在添加1天后的周末(周六或周日),以及之后的第二天是假期,则显示下一个工作日.例如:如果最小可能日是星期六,则在+1天之后,我们将必须在星期一显示.但如果星期一恰好是假日,那么我们必须在周二展示.

我已经通过多个if和else案例尝试了上述问题的解决方案,但只是想知道是否有任何通用和优雅的方式来做到这一点?

我试过了

var Holidays = new List<DateTime>();
Holidays.Add(new DateTime(DateTime.Now.Year,1,1));
Holidays.Add(new DateTime(DateTime.Now.Year,1,5));
Holidays.Add(new DateTime(DateTime.Now.Year,3,10));
Holidays.Add(new DateTime(DateTime.Now.Year,12,25));

if(date.DayOfWeek === DayOfWeek.Saturday || date.DayOfWeek === DayOfWeek.Sunday)

{

     //Logic to add +1 and again some logic to check for weekends and weekdays
}


else if(holidays.Contain(date))
{

   //Logic to add +1 and again some logic to check for weekends and weekdays
}
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm datetime date

16
推荐指数
3
解决办法
2万
查看次数