PrintSystemJobInfo.UntilTimeOfDay プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
印刷ジョブが印刷を開始できる最も遅い時刻を取得します。この時刻は、世界協定時刻 (UTC) (グリニッジ標準時 [GMT] とも呼ばれます) の午前 0 時からの分数で表現されます。
public:
property int UntilTimeOfDay { int get(); };
public int UntilTimeOfDay { get; }
member this.UntilTimeOfDay : int
Public ReadOnly Property UntilTimeOfDay 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.UntilTimeOfDay各PrintSystemJobInfoオブジェクトに反映されます。 が変更された場合 PrintQueue.UntilTimeOfDay 、 PrintSystemJobInfo.UntilTimeOfDay より PrintQueue.UntilTimeOfDay 後の値は の PrintQueue.UntilTimeOfDay値に変更されます。
ジョブをキューに追加した後は、Microsoft Windows ユーザー インターフェイス (UI) を使用して新しい UntilTimeOfDay 値を指定できます (後 PrintQueue.UntilTimeOfDayで指定する必要があります)。
UTC タイム ゾーンにいない場合は、タイム ゾーンの正しい時刻を取得するために、60 の倍数を加算または減算する必要があります。 たとえば、北米の太平洋タイム ゾーンにいて、夏時間が有効でない場合、現地時刻は UTC より 8 時間早くなります。 が 960 を返す場合 UntilTimeOfDay は、UTC の 16:00 (午後 4:00) を意味します (960/60 = 16 のため)。 これを太平洋時に変換するには、480 (= 8 * 60) 分を減算する必要があります。
また、24 時間後 (つまり、1439 分後) に時間が 0 にロールオーバーされることを覚えておく必要があります。 が 120 を返す場合 UntilTimeOfDay は、UTC の午前 2 時を意味します。 これを太平洋時に変換するには、480 分を減算する必要があります。その結果、-360 になります。 意味のある正の値を取得するには、負の数を 1 日の合計分 (1440) に加算すると、最終的な値は太平洋時間 1080 (午後 6:00) になります。
タイム ゾーンの調整に役立つメソッドについては、「、TimeSpan、およびDateTime」を参照してくださいTimeZone。
プリンターが常に使用可能な場合、このプロパティはすべてのタイム ゾーンで 0 を返します。
適用対象
こちらもご覧ください
.NET