PrintQueue.UntilTimeOfDay Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define a última hora, expressa como o número de minutos após a meia-noite, de acordo com o UTC (Tempo Universal Coordenado), também chamado de GMT (Horário do Meridiano de Greenwich), em que a impressora imprimirá um trabalho.
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
Valor da propriedade
A hora do dia em que a impressora não está mais disponível, expressa como o número de minutos após a meia-noite (UTC). O valor máximo é 1439. Quando uma impressora é instalada pela primeira vez usando o Assistente para Adicionar Impressora do Microsoft Windows, a impressora usa o padrão de estar disponível o tempo todo e essa propriedade retorna 0 em todos os fusos horários.
Exemplos
O exemplo a seguir mostra como usar essa propriedade para determinar se uma impressora está disponível no momento.
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
Comentários
Se você não estiver no fuso horário UTC, deverá adicionar ou subtrair múltiplos de 60 para definir ou obter a hora correta para o fuso horário. Por exemplo, se você estiver no Fuso Horário do Pacífico de América do Norte e o horário de verão não estiver em vigor, sua hora local será 8 horas mais cedo que UTC. Para definir UntilTimeOfDay como 12:00 no fuso horário, defina-o como 8:00 UTC, que é 480 (= 8 * 60). Você também deve lembrar que o tempo passa para zero após a 24ª hora (o 1439º minuto). Para defini-lo como 18h no fuso horário, defina-o como 2h UTC, que é 120 (= 2 * 60). Consulte TimeZoneclasses , TimeSpane DateTime para obter métodos úteis de manipulação de fuso horário.
Se a impressora estiver sempre disponível, essa propriedade retornará 0 em todos os fusos horários.