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 (480 (= 8 * 60). Вы также должны помнить, что время откатывается до нуля после 24-го часа (1439-й минуты). Чтобы задать для него значение 6:00 в часовом поясе, установите для него значение 2:00 (120 (= 2 * 60). См. TimeZoneсведения TimeSpanо полезных методах управления часовыми поясами и DateTime классах.
Если принтер всегда доступен, это свойство возвращает значение 0 во всех часовых поясах.