2016-11-03 2 views
-3

年(2016) - >年の日(308,309) - >日(00-23)のようなフォルダ構造があります。今日の午前9時から昨日10時までの2つの日付の間のすべての日と時間を取得する方法を知りたい。これを行う簡単な方法はありますか?Cの2日間の年月日とすべての時間を取得する

私の悪い!私は十分な情報を与えなかった。だから、私はこれを尋ねる前にスパンを試してみました。スパンのように違うものを得たくないのです。代わりに、2つの日付の間の年と時間の日が必要です。

昨日の午前10時から今日までは307日目の10時間目、11時間目など...今日までは308日目と9時間目です。私は日付を通してループすることでこれを行うことができますが、私はストレートな方法があるかどうかを知りたがっていました。

+0

は例の2日を取り、それを試してみてください。 – mybirthname

+0

これまでに何を試しましたか? –

+0

それを解決するためにいくつかの努力を示すことから始めてください...あなたがつまっているところを教えてください –

答えて

1

私はあなたが必要とするデータを格納するための単純なクラスを作成します

DateTime d1 = DateTime.Today.AddDays(-1).AddHours(10); 
DateTime d2 = DateTime.Today.AddHours(9); 
IList<DateInfo> dates = new List<DateInfo>(); 

while (d1 <= d2) 
{ 
    DateInfo dateInfo = new DateInfo() 
    { 
     Year = d1.ToString("yyyy"), 
     DayOfYear = d1.DayOfYear.ToString(), 
     Hour = d1.ToString("HH"), 
    }; 
    dates.Add(dateInfo); 
    d1 = d1.AddHours(1); 
} 
+0

実際にいくつかの答えを提供していただきありがとうございます。私はこれを使用していくつかのストレステストをしています。なぜなら、このようなフォルダ、サブフォルダを4年間持っているからです。 – Avenger789

1

2つの日付の違いを調べるにはn通りの方法があります。

DateTime a = new DateTime(2016, 11, 03, 10, 00, 00); 
DateTime b = DateTime.Now; 
Console.WriteLine(b.Subtract(a).TotalHours); 

を次のようにそれらの2があるこれは、あなた

TimeSpan span = (b - a); 
Console.WriteLine(String.Format("{0} days, {1} hours, {2} minutes, {3} seconds", span.Days, span.Hours, span.Minutes, span.Seconds)); 

としてこれはあなたに、誰もが理解できる形式で詳細を与える2つの日付の間の合計時間を与えるだろう。

class DateInfo 
{ 
    public string Year {get;set;} 
    public string DayOfYear{get;set;} 
    public string Hour {get;set;} 
} 

をして、結果を得る:

+0

@ Avenger789:あなたの質問を理解していれば。年の最初の日付を 'DateTime a = new DateTime(2016,01,01.00,00,00) 'のような' a'として選択することができ、それはspanを使って期待される出力を与えます。そして、昨日の日付では、再び 'b'に値を代入して同じ計算を行う必要があります。 –

+0

いいえ、それはありません。それはまだ私に違いを与え、それらの間の値を列挙しません。私は列挙された日付の間にすべての時間/日/年を必要とします – Avenger789

関連する問題