PrintSystemJobInfo.StartTimeOfDay Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém a hora mais cedo do dia, expressa como o número de minutos após a meia-noite do Tempo Universal Coordenado (UTC) (também chamado de Hora Média de Greenwich [GMT]), que o trabalho de impressão pode começar a imprimir.
public:
property int StartTimeOfDay { int get(); };
public int StartTimeOfDay { get; }
member this.StartTimeOfDay : int
Public ReadOnly Property StartTimeOfDay As Integer
Valor de Propriedade
E Int32 especifica a hora de início mais cedo possível para o trabalho de impressão, expressa como o número de minutos após a meia-noite (UTC). O valor máximo é 1439.
Exemplos
O exemplo seguinte mostra como usar esta propriedade como parte do processo de diagnóstico de um trabalho de impressão problemático.
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
Observações
Este valor é propagado para cada PrintSystemJobInfo objeto a partir da PrintQueue.StartTimeOfDay propriedade do hospedeiro PrintQueue no momento em que o trabalho entra na fila. Se PrintQueue.StartTimeOfDay for alterado, então qualquer PrintSystemJobInfo.StartTimeOfDay valor que seja anterior a PrintQueue.StartTimeOfDay é alterado para o valor de PrintQueue.StartTimeOfDay.
Depois de o trabalho ser adicionado à fila, pode receber um novo valor StartTimeOfDay através da interface de utilizador (UI) do Microsoft Windows, desde que não seja anterior a PrintQueue.StartTimeOfDay.
Se não estiver no fuso horário UTC, deve somar ou subtrair múltiplos de 60 para obter a hora correta para o seu fuso horário. Por exemplo, se estiver no fuso horário do Pacífico da América do Norte e o horário de verão não estiver em vigor, então o seu horário local está 8 horas mais cedo do que o UTC. Se StartTimeOfDay devolver 960, isso significa 16:00 (16:00) em UTC (porque 960/60 = 16). Para converter isto para a Hora do Pacífico, deve subtrair 480 (= 8 * 60) minutos.
Também tens de te lembrar que o tempo chega a zero após 24 horas (isto é; depois do minuto 1439). Se StartTimeOfDay devolver 120, isso significa 2:00 da manhã no UTC. Para converter isto para a Hora do Pacífico, deve subtrair 480 minutos, o que resulta em -360. Para obter um valor positivo que tenha significado, adicione o número negativo ao total de minutos de um dia, 1440, resultando num valor final de 1080 (18:00) hora do Pacífico.
Veja TimeZone, TimeSpan, e DateTime para métodos que ajudam a fazer ajustes de fusos horários.
Se a impressora estiver sempre disponível, então esta propriedade devolve 0 em todos os fusos horários.