PrintSystemJobInfo.UntilTimeOfDay Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает самое позднее время дня, выраженное как количество минут после полуночи в формате UTC (время по Гринвичу [GMT]), когда принтер может начать печать.
public:
property int UntilTimeOfDay { int get(); };
public int UntilTimeOfDay { get; }
member this.UntilTimeOfDay : int
Public ReadOnly Property UntilTimeOfDay As Integer
Значение свойства
Значение типа Int32, указывающее самое позднее время, когда принтер может начать печать, выраженное как количество минут после полуночи в формате UTC. Максимальное значение равно 1439.
Примеры
В следующем примере показано, как использовать это свойство в процессе диагностики проблемного задания печати.
static Boolean ReportAvailabilityAtThisTime (PrintSystemJobInfo^ theJob)
{
Boolean available = true;
if (theJob->StartTimeOfDay != theJob->UntilTimeOfDay)
{
DateTime utcNow = DateTime::UtcNow;
Int32 utcNowAsMinutesAfterMidnight = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes;
// If "now" is not within the range of available times . . .
if (!((theJob->StartTimeOfDay < utcNowAsMinutesAfterMidnight) && (utcNowAsMinutesAfterMidnight < theJob->UntilTimeOfDay)))
{
available = false;
}
}
return available;
}
private static Boolean ReportAvailabilityAtThisTime(PrintSystemJobInfo theJob)
{
Boolean available = true;
if (theJob.StartTimeOfDay != theJob.UntilTimeOfDay) // If the job cannot be printed at all times of 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 (!((theJob.StartTimeOfDay < utcNowAsMinutesAfterMidnight)
&&
(utcNowAsMinutesAfterMidnight < theJob.UntilTimeOfDay)))
{
available = false;
}
}
return available;
}//end ReportAvailabilityAtThisTime
Private Shared Function ReportAvailabilityAtThisTime(ByVal theJob As PrintSystemJobInfo) As Boolean
Dim available As Boolean = True
If theJob.StartTimeOfDay <> theJob.UntilTimeOfDay Then ' If the job cannot be printed at all times of 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((theJob.StartTimeOfDay < utcNowAsMinutesAfterMidnight) AndAlso (utcNowAsMinutesAfterMidnight < theJob.UntilTimeOfDay)) Then
available = False
End If
End If
Return available
End Function 'end ReportAvailabilityAtThisTime
Комментарии
Это значение распространяется на каждый PrintSystemJobInfo объект из PrintQueue.UntilTimeOfDay свойства размещения PrintQueue во время входа задания в очередь. Если PrintQueue.UntilTimeOfDay значение изменено, то любое PrintSystemJobInfo.UntilTimeOfDay значение, которое является более поздним, изменяется PrintQueue.UntilTimeOfDay на значение PrintQueue.UntilTimeOfDay.
После добавления задания в очередь ему может быть присвоено новое UntilTimeOfDay значение через пользовательский интерфейс Microsoft Windows при условии, что оно не позже PrintQueue.UntilTimeOfDay.
Если вы не находитесь в часовом поясе UTC, необходимо добавить или вычесть кратные 60, чтобы получить правильное время для вашего часового пояса. Например, если вы находитесь в тихоокеанском часовом поясе Северная Америка и летнее время не действует, то местное время на 8 часов раньше UTC. Если UntilTimeOfDay возвращается значение 960, это означает 16:00 (16:00) в формате UTC (так как 960/60 = 16). Чтобы преобразовать это время в тихоокеанское время, необходимо вычесть 480 (= 8 * 60) минут.
Также необходимо помнить, что время сворачивается до нуля через 24 часа (то есть после 1439-й минуты). Если UntilTimeOfDay возвращает значение 120, это означает 2:00 в формате UTC. Чтобы преобразовать это значение в тихоокеанское время, необходимо вычесть 480 минут, что приводит к -360. Чтобы получить положительное значение, которое имеет значение, добавьте отрицательное число к общему количеству минут в день( 1440), что приведет к окончательному значению 1080 (18:00) по тихоокеанскому времени.
Методы, помогающие вносить корректировки часового пояса, см TimeZone. в разделе , TimeSpanи DateTime .
Если принтер всегда доступен, то это свойство возвращает значение 0 во всех часовых поясах.