PrintSystemJobInfo.UntilTimeOfDay Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene l'ultimo orario possibile, espresso come numero di minuti dopo la mezzanotte ora UTC (Coordinated Universal Time), nota anche come ora GMT (Greenwich Mean Time), per l'avvio della stampa di un processo.
public:
property int UntilTimeOfDay { int get(); };
public int UntilTimeOfDay { get; }
member this.UntilTimeOfDay : int
Public ReadOnly Property UntilTimeOfDay As Integer
Valore della proprietà
Oggetto Int32 che specifica l'ultimo orario possibile per la stampa del processo, espresso come numero di minuti dopo la mezzanotte (ora UTC). Il valore massimo è 1439.
Esempio
Nell'esempio seguente viene illustrato come usare questa proprietà come parte del processo di diagnosi di un processo di stampa problematico.
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
Commenti
Questo valore viene propagato a ogni PrintSystemJobInfo oggetto dalla PrintQueue.UntilTimeOfDay proprietà dell'hosting PrintQueue al momento in cui il processo entra nella coda. Se PrintQueue.UntilTimeOfDay viene modificato, qualsiasi PrintSystemJobInfo.UntilTimeOfDay valore più avanti rispetto PrintQueue.UntilTimeOfDay al valore di PrintQueue.UntilTimeOfDay.
Dopo aver aggiunto il processo alla coda, può essere assegnato un nuovo UntilTimeOfDay valore tramite l'interfaccia utente di Microsoft Windows (UI), purché non sia più tardi di PrintQueue.UntilTimeOfDay.
Se non si è nel fuso orario UTC, è necessario aggiungere o sottrarre più di 60 per ottenere l'ora corretta per il fuso orario. Ad esempio, se si è nel fuso orario Pacifico di America del Nord e l'ora legale non è effettiva, l'ora locale è di 8 ore prima dell'ORA UTC. Se UntilTimeOfDay restituisce 960, significa 16:00 (4:00 PM) in UTC (perché 960/60 = 16). Per convertire questo valore in Pacific Time, è necessario sottrarre 480 (= 8 * 60) minuti.
È anche necessario ricordare che il tempo passa a zero dopo 24 ore ,ovvero dopo il 1439° minuto. Se UntilTimeOfDay restituisce 120, significa che le 2:00 sono in formato UTC. Per convertire questo valore in Pacific Time, è necessario sottraere 480 minuti, che comporta -360. Per ottenere un valore positivo che ha significato, aggiungere il numero negativo ai minuti totali in un giorno, 1440, causando un valore finale di 1080 (6:00 PM) Tempo Pacifico.
Vedere TimeZone, TimeSpane DateTime per i metodi che consentono di apportare modifiche al fuso orario.
Se la stampante è sempre disponibile, questa proprietà restituisce 0 in tutti i fusi orari.