PrintQueue.UntilTimeOfDay Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает самое позднее время, выраженное как количество минут после полуночи в формате UTC (время по Гринвичу [GMT]), когда принтер будет печатать задание.
public:
virtual property int UntilTimeOfDay { int get(); void set(int value); };
public virtual int UntilTimeOfDay { get; set; }
member this.UntilTimeOfDay : int with get, set
Public Overridable Property UntilTimeOfDay 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. Чтобы задать UntilTimeOfDay для часового пояса значение 12:00, установите для него значение 8:00 (UTC), то есть 480 (= 8 * 60). Вы также должны помнить, что время скатывается до нуля после 24-го часа (1439-й минуты). Чтобы задать для него значение 18:00 в часовом поясе, установите значение 2:00 (UTC), то есть 120 (= 2 * 60). Сведения о полезных методах управления часовыми поясами см. в разделе TimeZoneКлассы , TimeSpanи DateTime .
Если принтер всегда доступен, то это свойство возвращает значение 0 во всех часовых поясах.