PrintSystemJobInfo.StartTimeOfDay Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает самое раннее время дня, выраженное как количество минут после полуночи в формате UTC (время по Гринвичу [GMT]), когда принтер может начать печать.
public:
property int StartTimeOfDay { int get(); };
public int StartTimeOfDay { get; }
member this.StartTimeOfDay : int
Public ReadOnly Property StartTimeOfDay 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.StartTimeOfDay свойства размещения PrintQueue во время входа задания в очередь. Если PrintQueue.StartTimeOfDay значение изменено, то любое PrintSystemJobInfo.StartTimeOfDay значение, которое раньше PrintQueue.StartTimeOfDay , меняется на значение PrintQueue.StartTimeOfDay.
После добавления задания в очередь ему может быть присвоено новое StartTimeOfDay значение через пользовательский интерфейс Microsoft Windows при условии, что оно не ранее PrintQueue.StartTimeOfDay.
Если вы не находитесь в часовом поясе UTC, необходимо сложить или вычесть кратные 60, чтобы получить правильное время для вашего часового пояса. Например, если вы находитесь в тихоокеанском часовом поясе Северная Америка и летнее время не действует, то местное время на 8 часов раньше UTC. Если StartTimeOfDay возвращает значение 960, это означает, что 16:00 (16:00) в формате UTC (так как 960/60 = 16). Чтобы преобразовать это значение в тихоокеанское время, необходимо вычесть 480 (= 8 * 60) минут.
Также необходимо помнить, что время скатывается до нуля через 24 часа (то есть после 1439-й минуты). Если StartTimeOfDay возвращает значение 120, это означает 2:00 в формате UTC. Чтобы преобразовать это значение в тихоокеанское время, необходимо вычесть 480 минут, что приведет к -360. Чтобы получить положительное значение, которое имеет значение, добавьте отрицательное число к общему значению минут в день 1440, что приведет к конечному значению 1080 (18:00) по тихоокеанскому времени.
Методы, помогающие корректировать часовой пояс, см TimeZone. в разделе , TimeSpanи DateTime .
Если принтер всегда доступен, то это свойство возвращает значение 0 во всех часовых поясах.