0

私はc#.netを使用しています

データベースから 2 回取得しました (「最早開始時刻」と「最遅終了時刻」)。

ループして「中間」時間をリストに追加したい。

  • 最早開始時間 – 12:00
  • 12:30
  • 13:00
  • 13:30
  • 14:00
  • 14:30
  • 最終終了時間 – 15:00

いくつかのコードを見つけましたが、情報がデータベースから取得されているため、開始時刻は 12:00/12:30 などになる可能性があります。以下のコードを両方の時刻 (1 時間 / 30 分) に合わせる方法がわかりません。 1時間)

int i = -1; 

List<string> appointmentTimes = new List<string>();

while (DateTime.Today.AddHours(firstTime).AddMinutes(i * 30).Hour < lastTime)
{
appointmentTimes.Add(DateTime.Today.AddHours(7).AddMinutes(30*(++i)); );
}

firstTime を時間/分に分割する必要がありますか?

while (DateTime.Today.AddHours(firstTimeHour).AddMinutes(firstTimeMintues, i * 30).Hour < lastTime)
{
appointmentTimes.Add(DateTime.Today.AddHours(7).AddMinutes(30*(++i)); );
}

助けてくれてありがとう。

クレア

4

2 に答える 2

1

申し訳ありませんが、答えではなく単なるヒントですが、おそらく TimeSpan を使用して利用可能な時間をループする方が簡単です。

TimeSpan.FromHours と TimeSpan.FromMinutes を使用して TimeSpan を取得し、TimeSpan.Hours と TimeSpan.Minutes の場合と同様にリストに 30 を追加します。

于 2009-10-15T08:52:04.387 に答える
0

私を正しい軌道に乗せてくれたジャスティンに感謝します。

            // ---- Create a new list
            List<string> appointmentTimes = new List<string>();

            // ---- If information is pulled back
            if (myResults != null)
            {
                TimeSpan time = TimeSpan.FromMinutes(30);

                DateTime FirstTime = Convert.ToDateTime(myResult.firstStart);
                DateTime LatestTime = Convert.ToDateTime(myResult.lastEnd);

                while (FirstTime < LatestTime )
                {
                    appTimes.Add(FirstTime .ToString());
                    FirstTime += time;
                }
            }
于 2009-10-15T10:23:41.750 に答える