次の方法で共有


PrintSystemJobInfo.StartTimeOfDay プロパティ

定義

印刷ジョブが印刷を開始できる最も早い時刻を取得します。この時刻は、世界協定時刻 (UTC) (グリニッジ標準時 [GMT] とも呼ばれます) の午前 0 時からの分数で表現されます。

public:
 property int StartTimeOfDay { int get(); };
public int StartTimeOfDay { get; }
member this.StartTimeOfDay : int
Public ReadOnly Property StartTimeOfDay As Integer

プロパティ値

印刷ジョブの開始可能な最も早い時刻を指定している Int32。この時刻は、午前 0 時 (UTC) からの分数で表現されます。 最大値は 1439 です。

次の例は、問題のある印刷ジョブを診断するプロセスの一部としてこのプロパティを使用する方法を示しています。

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

注釈

この値は、ジョブがキューに入った時点で、ホスティングPrintQueueの プロパティからPrintQueue.StartTimeOfDayPrintSystemJobInfoオブジェクトに反映されます。 が変更された場合 PrintQueue.StartTimeOfDayPrintSystemJobInfo.StartTimeOfDay より PrintQueue.StartTimeOfDay 前の値は の PrintQueue.StartTimeOfDay値に変更されます。

ジョブをキューに追加した後は、Microsoft Windows ユーザー インターフェイス (UI) を使用して新しい StartTimeOfDay 値を指定できます 。ただし、 より PrintQueue.StartTimeOfDay前でない場合は。

UTC タイム ゾーンにいない場合は、タイム ゾーンの正しい時刻を取得するために、60 の倍数を加算または減算する必要があります。 たとえば、北米の太平洋タイム ゾーンにいて、夏時間が有効でない場合、現地時刻は UTC より 8 時間早くなります。 が 960 を返す場合 StartTimeOfDay は、UTC の 16:00 (午後 4:00) を意味します (960/60 = 16 のため)。 これを太平洋時に変換するには、480 (= 8 * 60) 分を減算する必要があります。

また、24 時間後 (つまり、1439 分後) に時間が 0 にロールオーバーされることを覚えておく必要があります。 が 120 を返す場合 StartTimeOfDay は、UTC の午前 2 時を意味します。 これを太平洋時に変換するには、480 分を減算する必要があります。その結果、-360 になります。 意味のある正の値を取得するには、負の数を 1 日の合計分 (1440) に加算すると、最終的な値は太平洋時間 1080 (午後 6:00) になります。

タイム ゾーンの調整に役立つメソッドについては、「、TimeSpan、およびDateTime」を参照してくださいTimeZone

プリンターが常に使用可能な場合、このプロパティはすべてのタイム ゾーンで 0 を返します。

適用対象

こちらもご覧ください