PrintSystemJobInfo.StartTimeOfDay Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yazdırma işinin yazdırmaya başlayabildiği, gece yarısı Eşgüdümlü Evrensel Saat 'den (UTC) (Greenwich Saati [GMT] olarak da adlandırılır) sonraki dakika sayısı olarak ifade edilen günün en erken saatini alır.
public:
property int StartTimeOfDay { int get(); };
public int StartTimeOfDay { get; }
member this.StartTimeOfDay : int
Public ReadOnly Property StartTimeOfDay As Integer
Özellik Değeri
Int32 Yazdırma işi için mümkün olan en erken başlangıç zamanını belirten, gece yarısından (UTC) sonraki dakika sayısı olarak ifade edilen. En büyük değer 1439'dur.
Örnekler
Aşağıdaki örnekte, sorunlu bir yazdırma işini tanılama işleminin bir parçası olarak bu özelliğin nasıl kullanılacağı gösterilmektedir.
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
Açıklamalar
Bu değer, işin kuyruğa girdiği sırada barındırma PrintQueue özelliğinden PrintQueue.StartTimeOfDay her PrintSystemJobInfo nesneye yayılır. değiştirilirsePrintQueue.StartTimeOfDay, değerinden PrintQueue.StartTimeOfDay önceki herhangi bir PrintSystemJobInfo.StartTimeOfDay değer değerine PrintQueue.StartTimeOfDaydeğiştirilir.
İş kuyruğa eklendikten sonra, daha önce PrintQueue.StartTimeOfDayolmaması koşuluyla Microsoft Windows kullanıcı arabirimi (UI) aracılığıyla yeni StartTimeOfDay bir değer verilebilir.
UTC saat diliminde değilseniz, saat diliminiz için doğru zamanı elde etmek için 60'ın katlarını eklemeniz veya çıkarmanız gerekir. Örneğin, Kuzey Amerika Pasifik Saat Dilimindeyseniz ve yaz saati etkin değilse, yerel saatiniz UTC'den 8 saat öncesidir. 960 döndürürse StartTimeOfDay , bu UTC'de 16:00 (16:00) anlamına gelir (çünkü 960/60 = 16). Bunu Pasifik Saati'ne dönüştürmek için 480 (= 8 * 60) dakika çıkarmanız gerekir.
Ayrıca, zamanın 24 saat sonra (yani 1439. dakikadan sonra) sıfıra yuvarlandığını da unutmayın. 120 döndürürse StartTimeOfDay , bu UTC ile 02:00 anlamına gelir. Bunu Pasifik Saati'ne dönüştürmek için 480 dakika çıkarmanız gerekir ve bu da -360 sonucunu döndürür. Anlamı olan pozitif bir değer elde etmek için negatif sayıyı 1440 gün içindeki toplam dakika sayısına ekleyerek 1080 (18:00) Pasifik Saati değerinin son değerini elde edin.
Saat dilimi ayarlamalarına yardımcı olan yöntemler için bkz TimeZone. , TimeSpanve DateTime .
Yazıcı her zaman kullanılabilir durumdaysa, bu özellik tüm saat dilimlerinde 0 döndürür.