課題を作成し、各課題にかかる時間を記録できる Web サイトを作成しようとしています。開始、停止、一時停止、続行ボタンが必要です。
データベース内の各割り当ての開始日と終了日があると考えました。このようにして、開始ボタンを押すと現在の日時が保存され、停止ボタンを押すと現在の日時も記録されます。次に、2 つの日付を差し引いて、割り当てを完了するのにかかった時間を取得できます。
しかし、課題を一時停止し、後日再開したい場合はどうすればよいでしょうか? 開始日と終了日を差し引いても、この方法で割り当てに費やされた実際の時間は返されません。
どうすればいいですか?
ありがとう
@Gilbert Le Blancの回答に基づいて、誰かがこれを必要とする場合に備えて、ソリューションを示す小さなC#アプリケーションを作成しました:
class Program
{
static List<DateTime> datetimes;
static void Main(string[] args)
{
// DateTime(Int32, Int32, Int32, Int32, Int32, Int32)
// Initializes a new instance of the DateTime structure to the specified year, month, day, hour, minute, and second.
datetimes = new List<DateTime>();
datetimes.Add(new DateTime(2013, 08, 18, 15, 15, 51));
datetimes.Add(new DateTime(2013, 08, 19, 15, 15, 51));
datetimes.Add(new DateTime(2013, 08, 20, 15, 15, 51));
//datetimes.Add(new DateTime(2013, 08, 21, 15, 15, 51));
double numberOfMinutes = CalculateTimeInMinutes(datetimes.OrderByDescending(x => x.Date).ToList());
bool isRunning = IsOdd(datetimes.Count);
}
// Hvis der er et ulige antal rækker, kører opgaven stadig
// Hvis der er et lige antal rækker, er opgaven pauset
private static bool IsOdd(int value)
{
return value % 2 != 0;
}
private static double CalculateTimeInMinutes(List<DateTime> timelist)
{
double numberOfMinutes = 0;
for (int i = 0; i < timelist.Count; i++)
{
int nextDate = i + 1;
if (nextDate <= timelist.Count - 1)
{
TimeSpan ts = timelist[i] - timelist[nextDate];
Console.WriteLine(ts.TotalMinutes);
numberOfMinutes = numberOfMinutes + ts.TotalMinutes;
}
}
return numberOfMinutes;
}
}