PrintQueue.StartTimeOfDay Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la hora más temprana del día, expresada como el número de minutos después de la medianoche hora universal coordinada (UTC) (también denominada Hora media de Greenwich [GMT]), que la impresora imprimirá un trabajo.
public:
virtual property int StartTimeOfDay { int get(); void set(int value); };
public virtual int StartTimeOfDay { get; set; }
member this.StartTimeOfDay : int with get, set
Public Overridable Property StartTimeOfDay As Integer
Valor de propiedad
Hora del día en que la impresora está disponible por primera vez, expresada como el número de minutos después de la medianoche (UTC). El valor máximo es 1439. Cuando una impresora se instala por primera vez mediante el asistente para agregar impresora Microsoft Windows, la impresora tiene como valor predeterminado estar disponible todo el tiempo y esta propiedad devuelve 0 en todas las zonas horarias.
Ejemplos
En el ejemplo siguiente se muestra cómo usar esta propiedad para determinar si una impresora está disponible en este 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
Comentarios
Si no está en la zona horaria UTC, debe agregar o restar múltiplos de 60 para establecer o obtener la hora correcta para la zona horaria. Por ejemplo, si se encuentra en la zona horaria del Pacífico de Norteamérica y el horario de verano no está en vigor, la hora local es de 8 horas antes de las UTC. Para establecer StartTimeOfDay en 12 AM en la zona horaria, establézcalo en 8 a.m. UTC, que es 480 (= 8 * 60). También debe recordar que el tiempo pasa a cero después de 24 horas (es decir, después del minuto 1439). Para establecerlo en 6 p. m. en la zona horaria, establézcalo en 2 a.m. UTC, que es 120 (= 2 * 60). Consulte TimeZoneclases , TimeSpany DateTime para obtener métodos útiles de manipulación de zonas horarias.
Si la impresora siempre está disponible, esta propiedad devuelve 0 en todas las zonas horarias.