次の午前2時を指定する日付オブジェクトを取得する必要があります。ネットで次の午前2時の正確な日付を見つける方法
15時には14時であるとふりをして、16時に2時を含む日付オブジェクトが必要です 時刻が16日に1:00の場合は、2: 00 on the 16th
どうすればよいですか?
次の午前2時を指定する日付オブジェクトを取得する必要があります。ネットで次の午前2時の正確な日付を見つける方法
15時には14時であるとふりをして、16時に2時を含む日付オブジェクトが必要です 時刻が16日に1:00の場合は、2: 00 on the 16th
どうすればよいですか?
私はすっきり/賢い方法があると確信しているが、それは仕事を得るでしょう。
現在の時刻が午前2時より前の場合は、次の午前2時は今日、次の午前2時は明日(日+1)になります。
おそらくdatetimeオブジェクトを使用して1日増分する必要があります。これは、常に正しい日付になるようにする必要があります。 C#の
DateTime dt = DateTime.Today.AddHours(2);
if (dt < DateTime.Now)
dt = dt.AddDays(1);
で
どのようにして.netで日付オブジェクトを使用しますか? –
DateTime.AddDays –
private DateTime GetTwoAm()
{
DateTime time1 = DateTime.Now;
DateTime time2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 2, 0, 0);
if (time1 <= time2)
{
return time2;
}
else
{
return time2.AddDays(1);
}
}
DateTime dt = DateTime.Now;
if (dt.Hour >= 2)
dt = dt.Date.Add(new TimeSpan(1, 2, 0, 0));
else
dt = dt.Date.Add(new TimeSpan(2, 0, 0));
日付を扱うときはいつでもあなたはケースを欠場するための機能に組み込まれて使用します。それは2時後だ場合
DateTime today2am = DateTime.Now.Date.AddHours(2);
DateTime Nexttwoam = (DateTime.Now < today2am) ? (today2am) : today2am.AddDays(1);
today2amは今日の午前2時ではなく、現在時間+2時間を含んでいます。 –
@Herp DateTime.Now.Dateは日付だけを返し、時刻は00:00にデフォルト設定されているためです – w69rdy
そうでない場合は追加し、今日に一日を追加します。0日:
DateTime.Today.AddDays(DateTime.Now.Hour >= 2 ? 1 : 0)
と思う真夜中に時間を追加したり、時間も任意の大きなタイムスパンを加える含む任意の答えおそらく、夏時間のためにいつかは失敗することになります。
Dim dtToCheck As DateTime = "3/13/2011 00:12"
Dim tz As TimeZone = System.TimeZone.CurrentTimeZone
Dim dl As System.Globalization.DaylightTime = tz.GetDaylightChanges(dtToCheck.Year)
Dim dt As DateTime = Format(dtToCheck, "yyyy-MM-dd HH:00:00.000")
If dt < dtToCheck Then dt = dt.AddHours(1)
Do Until dt.Hour = 2
If dt < dl.Start And dt.AddHours(1) >= dl.Start Then
'will go over
dt = dt.Add(dl.Delta)
End If
dt = dt.AddHours(1)
Loop
TextBox2.Text = dt
3月13日の真夜中の次の2:AMは少なくとも私のタイムゾーンでは3月14日です。
ありがとうdownvoter。 – fearofawhackplanet
これは唯一の正しいものです –
パブロは彼を削除しました。 – Mike