排序日期和时间 [英] Sorting Date and Time

查看:142
本文介绍了排序日期和时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图写一个控制台应用程序基于起始日期升序排序我的日期和时间,这里是我想做一个例子。

Am trying to write a console application to sort my date and time by ascending order based on start date, here is an example of I'm trying to do.

我输入:


break Start1 = 15/02/12 12.30PM
break End1= 15/02/12 01.30PM
break Start2 = 15/02/12 11.00AM
break End2= 15/02/12 12.00PM
break Start3 = 15/02/12 12.00PM
break End3= 15/02/12 01.00PM

我期待我的输出应该是这样的:

Am expecting my output should be like:


break Start1 = 15/02/12 11.00AM
break End1= 15/02/12 12.00PM
break Start2 = 15/02/12 12.00PM
break End2= 15/02/12 01.00PM
break Start3 = 15/02/12 12.30PM
break End3= 15/02/12 01.30PM

请建议我解决这个最好的方法?

Please suggest me the best approach to solve this?

推荐答案

我建议要配对原来的开始和结束的值,然后只能由开始日期订购。

首先,你必须配对开始结束。例如。与类:

First you will have to pair the Start and End. E.g. with class:

public class Break
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}



然后,当你填充这些对象的集合,只是为了它通过开始使用LINQ

var breaks = new List<Break>()
                 {
                     new Break()
                         {
                             Start = new DateTime(2012,2,15,12,30,0),
                             End = new DateTime(2012,2,15,13,30,0)
                             ... /// etc.
                         }
                 };

var ordered = breaks.OrderBy(s => s.Start);
foreach (var ord in ordered)
{
    System.Console.WriteLine(ord.Start);
    System.Console.WriteLine(ord.End);
}

修改

创建配对日期时间对象可以使用方法如下:

public static Break ConvertToBreak(string startDate, string endDate, object gmtOffset)
{
     var dtStart = UnixTimeConverter(startDate, System.Convert.ToDecimal(gmtOffset));
     var dtEnd =  UnixTimeConverter(endDate, System.Convert.ToDecimal(gmtOffset));
     return new Break{Start = dtStart, End = dtEnd};
}

这篇关于排序日期和时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆