Непонятно, какую "конфигурацию" вы хотите здесь, но поскольку вы имеете дело только с временем , я бы лично использовал Noda Time с LocalTime
структура для обработки такого рода вещей. (Отказ от ответственности: я главный разработчик на Noda Time, поэтому я несколько предвзят.) Вы могли бы просто использовать DateTime
, но, как вы не хотите, чтобы дата ...
Не совсем понятно, какую "конфигурацию" вы хотите, но в Noda Time вы могли бы написать:
LocalTimePattern pattern = LocalTimePattern.CreateWithInvariantInfo("hh:mm tt");
for (var hour = 0; hour <= 12; hour++) {
for (var slot = 0; slot < 2; slot++) {
LocalTime time = new LocalTime(hour, slot * 30, 0);
Console.WriteLine(pattern.Format(time));
}
}
С более подробной информацией о том, что вы хотите сделать, мы, несомненно, можем помочь больше.
РЕДАКТИРОВАТЬ: Хорошо, звучит так, как будто вы хотите что-то вроде:
static void DisplaySlots(string format, Period slotLength, int slots)
{
// Or change the parameter to be a LocalTimePattern
LocalTimePattern pattern = LocalTimePattern.CreateWithInvariantInfo(format);
LocalTime time = LocalTime.Midnight;
for (int i = 0; i < slots; i++)
{
Console.WriteLine(pattern.Format(time));
time = time + slotLength;
}
}
Затем назовите его с помощью:
DisplaySlots("HH:mm", Period.FromMinutes(20), 100);
(или как там ...)
Альтернативное использование DateTime
:
static void DisplaySlots(string format, TimeSpan slotLength, int slots)
{
DateTime time = DateTime.Today;
for (int i = 0; i < slots; i++)
{
Console.WriteLine(time.ToString(format));
time = time + slotLength;
}
}