Reputation: 2146
I have to thank for the early help to advise the "Tick". Now am pretty much got in to my logic except one thing, i have a unix time in my database ,when i was trying to convert to real time and do the logic.
Sorry, let me describe the problem once again,
I have four different timestamp pulled out from DB (Start,End,Start1,End1) converted from unix to real time. am using the following code to do the conversion
DateTime = Convert.ToDateTime("1/1/1970").AddSeconds(SnapTo5Mins(Convert.ToDouble(UnixDate))).AddHours(GMTOFFset);
Problem here is,when the value is zero in the coloumn then the date time is returning like (1/1/1970).
for eg. my start value is zero in the database then it retruns (1/1/1970)
Step 1: compare the timestamp is not equal to 1/1/1970 (origin time) step 2: if its not equal then do Break = End.Subtract(Start); Step 3: if its equal then assign the break value to zero or whatever step 4: repeat step 1,2,3 for start1 step 5: concatenate both break + break1
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 )
Thanks in advance
Upvotes: 0
Views: 10023
Reputation: 2165
Not 100% sure what you are trying to get from the timespan, I think 0? But you can do a few things to get values.
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
Edit: Using your code
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
Upvotes: 3
Reputation: 5464
Of course. To add to @Dan Saltmer's answer:
DateTime then = DateTime.Now;
Thread.Sleep(500);
TimeSpan span = DateTime.Now - then;
Upvotes: 1