0

「ダニ」にアドバイスするための初期の助けに感謝しなければなりません。今は私のロジックにかなり夢中になっています.1つのことを除いて、リアルタイムに変換してロジックを実行しようとしていたときに、データベースにUNIX時間がありました。

申し訳ありませんが、もう一度問題を説明させてください。

Unixからリアルタイムに変換されたDB(Start、End、Start1、End1)から4つの異なるタイムスタンプを引き出しました。次のコードを使用して変換を行っています

DateTime = Convert.ToDateTime("1/1/1970").AddSeconds(SnapTo5Mins(Convert.ToDouble(UnixDate))).AddHours(GMTOFFset);

ここでの問題は、列の値がゼロの場合、日時が (1/1/1970) のように返されることです。

たとえば。私の開始値はデータベースでゼロであり、その後再実行されます (1/1/1970)

  1. ステップ 1: タイムスタンプが 1970 年 1 月 1 日 (起点時刻) と等しくないことを比較します ステップ 2: 等しくない場合は、Break = End.Subtract(Start); を実行します。ステップ 3: 等しい場合は、ブレーク値をゼロまたは任意の値に割り当てます ステップ 4: start1 に対してステップ 1、2、3 を繰り返します ステップ 5: 両方のブレーク + ブレーク 1 を連結します

        DateTime Origin = new DateTime(1970, 1, 1, 12, 0, 0, 0);
        DateTime Start ="01/01/1970 12:00";
        DateTime End = 01/01/1970 12:00";
        DateTime Start1 ="02/10/2013 12:20";
        DateTime End1 = "02/10/2013 02:20";
        TimeSpan Break;,finalMealBreak1;
        if (Origin.Year != Start.Year)
        {
            Break = End.Subtract(Start);
        }
        else
        {
            Break = //Assign constant value zero 
        }
          if (Origin.Year != Start1.Year)
        {
            Break1 = End1.Subtract(Start1);//break1 value must be 2hrs
        }
        else
        {
            Break1 = //Assign constant value zero
        }
       TimeSpan FinalBreakResult = Break + Break1; (FinalBreakresult value suppose to be 2 hrs )
    

前もって感謝します

4

2 に答える 2

2

あなたがタイムスパンから何を得ようとしているのか100%確信が持てません.0だと思いますか?ただし、値を取得するためにできることがいくつかあります。

TimeSpan.Zero // timespan of 0

DateTime.Now.TimeOfDay // returns a value of the current time in a timespan
                       // obviously also works with any datetime

TimeSpan.FromSeconds(100) // timespan with 100 seconds
                          // There are a few of these, like FromHours, FromDays

編集:コードの使用

DateTime Origin = new DateTime(1970, 1, 1, 12, 0, 0, 0);
DateTime Start = DateTime.Parse("01/01/1970 12:00:00");
DateTime End = DateTime.Parse("01/01/1970 12:00:00");
DateTime Start1 = DateTime.Parse("02/10/2013 12:20:00");
DateTime End1 = DateTime.Parse("02/10/2013 14:20:00");
TimeSpan Break, Break1;

if (Origin.Year != Start.Year)
{
    Break = End.Subtract(Start);
}
else
{
    Break = TimeSpan.Zero;
}
if (Origin.Year != Start1.Year)
{
    Break1 = End1.Subtract(Start1);//break1 value must be 2hrs
}
else
{
    Break1 = TimeSpan.Zero;
}

TimeSpan FinalBreakResult = Break + Break1;
// Value of FinalBreakResult is 2 hours
于 2013-02-11T23:52:42.143 に答える
1

もちろん。@Dan Saltmerの回答に追加するには:

DateTime then = DateTime.Now;
Thread.Sleep(500);
TimeSpan span = DateTime.Now - then;
于 2013-02-12T00:05:51.190 に答える