PrintSystemJobInfo.UntilTimeOfDay Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá poslední čas dne vyjádřený jako počet minut po půlnoci koordinovaného univerzálního času (UTC) (označovaný také jako greenwichský střední čas [GMT]), že může začít tisknout tisková úloha.
public:
property int UntilTimeOfDay { int get(); };
public int UntilTimeOfDay { get; }
member this.UntilTimeOfDay : int
Public ReadOnly Property UntilTimeOfDay As Integer
Hodnota vlastnosti
Určuje Int32 čas posledního tisku úlohy vyjádřený počtem minut po půlnoci (UTC). Maximální hodnota je 1439.
Příklady
Následující příklad ukazuje, jak použít tuto vlastnost jako součást procesu diagnostiky problematické tiskové úlohy.
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
Poznámky
Tato hodnota se rozšíří do každého PrintSystemJobInfo objektu PrintQueue.UntilTimeOfDay z vlastnosti hostování PrintQueue v okamžiku, kdy úloha vstoupí do fronty. Pokud PrintQueue.UntilTimeOfDay dojde ke změně, pak se jakákoli PrintSystemJobInfo.UntilTimeOfDay hodnota, která je pozdější než PrintQueue.UntilTimeOfDay , změní na hodnotu PrintQueue.UntilTimeOfDay.
Po přidání úlohy do fronty je možné jí prostřednictvím uživatelského rozhraní (UI) systému Microsoft Windows přidělit novou UntilTimeOfDay hodnotu za předpokladu, že není pozdější než PrintQueue.UntilTimeOfDay.
Pokud nejste v časovém pásmu UTC, musíte přičíst nebo odečíst násobky 60, abyste získali správný čas pro vaše časové pásmo. Pokud se například nacházíte v tichomořském časovém pásmu Severní Amerika a letní čas neplatí, je místní čas o 8 hodin starší než UTC. Pokud UntilTimeOfDay vrátí hodnotu 960, znamená to 16:00 (16:00) v UTC (protože 960/60 = 16). Pokud ho chcete převést na tichomořský čas, musíte odečíst 480 (= 8 × 60) minut.
Nezapomeňte také, že čas se po 24 hodinách (tedy po 1439. minutě) mění na nulu. Pokud UntilTimeOfDay vrátí hodnotu 120, znamená to 2:00 v utc. Chcete-li převést na tichomořský čas, musíte odečíst 480 minut, což má za následek -360. Pokud chcete získat kladnou hodnotu, která má význam, přičte záporné číslo k celkovému počtu minut za den 1440, čímž vznikne konečná hodnota 1080 (18:00) tichomořského času.
Metody, TimeSpankteré pomáhají s úpravami časových pásem, najdete v tématu TimeZone, a DateTime .
Pokud je tiskárna vždy dostupná, vrátí tato vlastnost hodnotu 0 ve všech časových pásmech.