我有一列包含HH:mm:ss PM/AM
格式的时间。我要把同一时间整理到下一个半小时。例如,如果时间是10:05:00
上午,则结束时间为11:30:00am
,如果是10:55:00 am
,则为11:30:00 am
(大约下一个小时和一半)。
答案 0 :(得分:1)
string yourstring = "10:05:00 am";
DateTime date1 = DateTime.Parse(yourstring);
if (date1.Minute > 0)
date1 = date1.AddMinutes(-date1.Minute);
if (date1.Second > 0)
date1 = date1.AddSeconds(-date1.Second);
date1 = date1.AddMinutes(90);
Console.WriteLine(date1);
答案 1 :(得分:0)
这应该对你有用
var dateTime = DateTime.Now; //your original DateTime value
var result = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day,
dateTime.Hour + 1, 30, dateTime.Second, dateTime.Kind);
下一小时的小时(+1)
分钟到30
答案 2 :(得分:-1)
我有一列包含HH时间:mm:ss PM / Am格式
如果我从该句中正确理解,我会假设您有DateTime
,并且您获得了hh:mm:ss tt
格式的列的字符串表示形式。
如果是这样,您可以先将其解析为DateTime
,检查其分钟是0
,如果是,请添加30
分钟,如果不是,则将其设为零{{1} } part并添加Minute
小时。
1.5
但是,当然,既然您已经已经 string s = "10:00:00 am";
DateTime dt;
if(DateTime.TryParseExact(s, "hh:mm:ss tt", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
if(dt.Minute != 0)
dt.AddMinutes(-dt.Minute).AddHours(1.5).ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture);
else
dt.AddMinutes(30).ToString("hh:mm:ss tt", CultureInfo.InvariantCulture);
}
个实例,请首先执行此Datetime
和/或AddMinutes
进程 然后在列中显示它的文本表示。