Aracılığıyla paylaş


PrintSystemJobInfo.StartTimeOfDay Özellik

Tanım

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.

Şunlara uygulanır

Ayrıca bkz.