0

課題を作成し、各課題にかかる時間を記録できる 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;
        }
    }
4

1 に答える 1

1

別の時間セグメント テーブルを作成します。

開始/停止のタイム スタンプごとに 1 つの行があります。

Web サイトに必要なのは、開始ボタンと停止ボタンだけです。Web サイトのユーザーが現在取り組んでいる課題を示す方法があると思います。

レポートのニーズに応じて、1 週間、2 週間、または 1 か月にわたって時間セグメントの行を合計します。

于 2013-02-20T17:44:01.817 に答える