c# - 如何使用 AddHours 和 AddMinutes 在 DateTime 变量中添加时间?

标签 c# asp.net-mvc datetime

<分区>

我将创建一个表单,用户必须在其中输入日期和时间。在数据库中,我会将日期和时间合并到一列中。我如何使用 ASP.NET MVC 和 C# 执行此操作?

信息:您可以在下面找到我的 HTML 代码

<form action="~/admin/NieuweCreateActiviteit" method="post" enctype="multipart/form-data">
    <div class="form-group">

        <label class="control-label col-md-2 required" for="NieuwActiviteit_StartPeriode">Aanvang datum</label>

        <div class="col-md-6">
            <input id="NieuwActiviteit_StartPeriode" name="NieuwActiviteit.StartPeriode" type="date" class="form-control text-box single-line col-md-6" required data-val="true" data-val-date="Dit veld moet een geldige datum bevatten." data-val-required="Dit veld is vereist." value="">
            @Html.ValidationMessageFor(model => model.NieuwActiviteit.StartPeriode, "", new { @class = "text-danger" })
        </div>

        <div class="col-md-4">
            <div class="form-group" style="margin-bottom: 0">
                <label class="control-label col-md-6 required">Uur</label>
                <div class="col-md-6">
                    <input type="time" class="form-control" required data-val-required="Dit veld is vereist." name="BeginUur" />
                </div>
            </div>
        </div>

    </div>
</form>

在 Controller 中接收日期(属性名称NieuwActiviteit.StartPeriode1)和时间(属性名称 BeginUur) 作为单独的属性。

所以我的解决方案是将时间分成冒号 (:) 并使用方法 AddHoursAddMinutes 为属性 StartPeriode 添加时间。

但它不起作用。如果我在下面代码中标记的行上放置一个断点,变量 tempstartuurtempstartmin 是可以的,但是如果我进入下一行,小时数不会添加到属性 StartPeriode

这是我的 Controller 的代码

[HttpPost]
public ActionResult NieuweCreateActiviteit(CreateActiviteitViewModel a)
{
    int tempstartuur, tempstartmin;

    if (int.TryParse(a.BeginUur.Split(':')[0], out tempstartuur) && int.TryParse(a.BeginUur.Split(':')[1], out tempstartmin))
    {
        a.NieuwActiviteit.StartPeriode.AddHours(tempstartuur);  // breakpoint
        a.NieuwActiviteit.StartPeriode.AddMinutes(tempstartmin);
    }
    else
    {
        AddErrors(new IdentityResult("Start uur is geen uur"));
        return View(a);
    }

    // insert in database
    return View();
}

信息: View 模型

public class CreateActiviteitViewModel
{
    public Activiteit NieuwActiviteit { get; set; }
    public HttpPostedFileBase UploadedFoto { get; set; }
    public string Submit { get; set; }
    [AllowHtml]
    public string Beschrijving { get; set; }
    public string BeginUur { get; set; }
    public string EindUur { get; set; }
}

public class Activiteit
{
    [Key]
    public int ID { get; set; }
    public string Titel { get; set; }
    public string Omschrijving { get; set; }
    public virtual ApplicationUser Gebuiker { get; set; }
    public string GebuikerID { get; set; }
    public DateTime StartPeriode { get; set; }
    public DateTime? EindPeriode { get; set; }
    public bool Verwijderd { get; set; }
    public bool Opgelost { get; set; }
    public virtual ICollection<ApplicationUser> Aanwezigen { get; set; }
    public string Foto { get; set; }
    public virtual Straat Straat { get; set; }
    public int StraatID { get; set; }
    public string Huisnummer { get; set; }
    public string Organisator { get; set; }
}

我的代码有什么问题?

提前致谢

1 抱歉,我正在用荷兰语编程...如果您对翻译有疑问,可以在评论中问我。

最佳答案

AddHoursAddMinutes 不会修改您调用它们的实例,它们会返回一个新值。所以:

a.NieuwActiviteit.StartPeriode = a.NieuwActiviteit.StartPeriode.AddHours(tempstartuur);
a.NieuwActiviteit.StartPeriode = a.NieuwActiviteit.StartPeriode.AddMinutes(tempstartmin);

报价表格 documentation AddHours 方法:

Returns a new DateTime that adds the specified number of hours to the value of this instance.

关于c# - 如何使用 AddHours 和 AddMinutes 在 DateTime 变量中添加时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42316909/

相关文章:

c# - C# 中的 FbDataReader 到 ArrayList

python - 将日期从数字格式的excel转换为日期格式python

php - 在 php 中更改检索日期的时区

asp.net-mvc - 使用 Azure Cmdlet 将 ASP.Net MVC 站点(在 Visual Studio 中创建)发布到 Azure

asp.net - 如何使用 SQL Server 和 ASP.NET MVC 将图像作为字段插入

pandas - 导出到 csv 时的 timedelta 格式松散 - 有解决方案吗?

c# - FluentAssertions Should().BeEquivalentTo 不比较 EF 动态代理上的运行时派生类型

c# - 无论如何在控制台程序中获取图形对象?

C# 如何检查属性是否返回 null?

asp.net-mvc - 如何在 WebForms .aspx 页面中使用 ASP.Net MVC View ?