PrintSystemJobInfo.StartTimeOfDay プロパティ
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
印刷ジョブが印刷を開始できる最も早い時刻を取得します。この時刻は、世界協定時刻 (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.StartTimeOfDay各PrintSystemJobInfoオブジェクトに反映されます。 が変更された場合 PrintQueue.StartTimeOfDay 、 PrintSystemJobInfo.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 を返します。
製品 | バージョン |
---|---|
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
Windows Desktop | 3.0, 3.1, 5, 6, 7, 8, 9 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。