-4

いくつかの日付を数値で並べ替えたい(Date.compare()ではない)

クライアント側(JS)でテーブルを並べ替えるために、日付をどのタイプに変換する必要がありますか?

int?タイムスタンプ?

そしてどうやって?

4

5 に答える 5

2

タイプDateTime.Ticksのそれを使用してください。long

于 2012-04-04T15:16:31.710 に答える
2

Ticksプロパティを使用して、DateTimeの数値表現を取得します。これらをティックでソートするサンプルプログラムは次のとおりです。

    static void Main(string[] args)
    {
        var dates = new List<DateTime> { new DateTime(2011, 5, 31), new DateTime(2012, 7, 31), new DateTime(2010, 1, 31) };
        dates.OrderBy(d => d.Ticks).ToList().ForEach(d => Console.WriteLine(d.ToString()));

        Console.WriteLine("Press ENTER to exit...");
        Console.ReadLine();
    }

これはこの出力を生成します:

1/31/2010 12:00:00 AM
5/31/2011 12:00:00 AM
7/31/2012 12:00:00 AM
Press ENTER to exit...
于 2012-04-04T15:22:00.903 に答える
1

あなたはそれをソートするために何かに日付を隠す必要はありません:

new[] { DateTime.Now, DateTime.Now.AddDays(-1) }.OrderBy(d => d);
于 2012-04-04T15:16:55.067 に答える
0

このように並べ替えるだけです

Array.Sort(datetimearr[]);

これを使用して、DateTimeオブジェクトのArrayListを降順で並べ替える方法を教えてください。

于 2012-04-04T15:17:41.967 に答える
0

それらをに基づいてコレクションに追加し、LINQIEnumerable<DateTime>を使用して次のように並べ替えるだけです。

using System.Collections.Generic;
using System.Linq

...

List<DateTime> dates = new List<DateTime>();

dates.Add(new DateTime(2012, 04, 01));
dates.Add(new DateTime(2012, 04, 05));
dates.Add(new DateTime(2012, 04, 04));
dates.Add(new DateTime(2012, 04, 02));
dates.Add(new DateTime(2012, 04, 03));

List<DateTime> orderedDates = dates.OrderBy(d => d);

DateTime.Ticks日付は比較可能であるため、使用する必要はありません。

于 2012-04-04T15:24:32.420 に答える