PrintQueue.StartTimeOfDay Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает самое раннее время дня, выраженное как количество минут после полуночи в формате UTC (также называемое среднее время Гринвича [GMT]), которое принтер будет печатать задание.
public:
virtual property int StartTimeOfDay { int get(); void set(int value); };
public virtual int StartTimeOfDay { get; set; }
member this.StartTimeOfDay : int with get, set
Public Overridable Property StartTimeOfDay As Integer
Значение свойства
Время дня, когда принтер впервые становится доступным, выражается в виде количества минут после полуночи (UTC). Максимальное значение — 1439. Когда принтер сначала установлен с помощью мастера добавления принтера Microsoft Windows, принтер по умолчанию доступен все время, и это свойство возвращает 0 во всех часовых поясах.
Примеры
В следующем примере показано, как использовать это свойство, чтобы определить, доступен ли принтер в настоящее время.
private:
static void ReportAvailabilityAtThisTime (System::String^% statusReport, System::Printing::PrintQueue^ pq)
{
if (pq->StartTimeOfDay != pq->UntilTimeOfDay)
{
System::DateTime utcNow = DateTime::UtcNow;
System::Int32 utcNowAsMinutesAfterMidnight = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes;
// If now is not within the range of available times . . .
if (!((pq->StartTimeOfDay < utcNowAsMinutesAfterMidnight) && (utcNowAsMinutesAfterMidnight < pq->UntilTimeOfDay)))
{
statusReport = statusReport + " Is not available at this time of day. ";
}
}
};
private static void ReportAvailabilityAtThisTime(ref String statusReport, PrintQueue pq)
{
if (pq.StartTimeOfDay != pq.UntilTimeOfDay) // If the printer is not available 24 hours a day
{
DateTime utcNow = DateTime.UtcNow;
Int32 utcNowAsMinutesAfterMidnight = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes;
// If now is not within the range of available times . . .
if (!((pq.StartTimeOfDay < utcNowAsMinutesAfterMidnight)
&&
(utcNowAsMinutesAfterMidnight < pq.UntilTimeOfDay)))
{
statusReport = statusReport + " Is not available at this time of day. ";
}
}
}
Private Shared Sub ReportAvailabilityAtThisTime(ByRef statusReport As String, ByVal pq As PrintQueue)
If pq.StartTimeOfDay <> pq.UntilTimeOfDay Then ' If the printer is not available 24 hours a day
Dim utcNow As Date = Date.UtcNow
Dim utcNowAsMinutesAfterMidnight As Int32 = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes
' If now is not within the range of available times . . .
If Not((pq.StartTimeOfDay < utcNowAsMinutesAfterMidnight) AndAlso (utcNowAsMinutesAfterMidnight < pq.UntilTimeOfDay)) Then
statusReport = statusReport & " Is not available at this time of day. "
End If
End If
End Sub
Комментарии
Если вы не находитесь в часовом поясе UTC, необходимо добавить или вычитать несколько из 60, чтобы задать или получить правильное время для часового пояса. Например, если вы находитесь в Тихоокеанском часовом поясе Северной Америки и летнего времени не действует, ваше локальное время составляет 8 часов раньше, чем в формате UTC. Чтобы задать StartTimeOfDay значение 12 AM в часовом поясе, установите для него значение 8:00 (480 (= 8 * 60). Также необходимо помнить, что время откатывается до нуля после 24 часов (т. е. после 1439-й минуты). Чтобы задать для него значение 6 PM в часовом поясе, установите для него значение 2:00 (120 (= 2 * 60). СмTimeZone. раздел и TimeSpanDateTimeклассы для полезных методов управления часовыми поясами.
Если принтер всегда доступен, это свойство возвращает 0 во всех часовых поясах.