如何计算从开始日期和结束日期开始的天数? [英] How to count number of days from start date and end date(which are given)?
问题描述
在我的项目中,我必须计算 Asp.Net MVC3 中给定开始日期和结束日期之间的天数.
在数据库字段中如上所述.
leave_id int
leave_start_date DateTime
leave_end_date DateTime
leave_days int
用户在其中输入开始日期和结束日期.
据此,我必须计算休假天数
然后我必须将所有这些保存在数据库中.
我的.cs文件如下
LeaveSet.cs
Hi,
In my project I have to count the number of days between Given Start and End Date in Asp.Net MVC3.
In the data base fields are as above
leave_id int
leave_start_date DateTime
leave_end_date DateTime
leave_days int
In which start date and end date entered by user.
According to that i have to count the leave days
and then i have to save all these in database.
my .cs files are as below
LeaveSet.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
namespace LeaveModule.Models
{
public class LeaveSet
{
public int user_id { get; set; }
public DateTime leave_start_date { get; set; }
public DateTime leave_end_date { get; set; }
public string leave_description { get; set; }
public decimal leave_days { get; set; }
}
}
另一个文件 LeaveSetFetch.cs
another file LeaveSetFetch.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProjectManagementSystem.Models;
namespace LeaveModule.Models
{
public class LeaveSetFetch
{
public static IList<LeaveSet> all()
{
IList<LeaveSet> result =
(IList<LeaveSet>)HttpContext.Current.Session["leave"];
if (result == null)
{
HttpContext.Current.Session["leave"] = result =
(from l in new ProjectManagementSystemEntities3().leave_master
select new LeaveSet
{
user_id = l.user_id,
leave_start_date = l.leave_start_date,
leave_end_date = l.leave_end_date,
leave_description = l.leave_description,
leave_days = l.leave_days,
}).ToList();
}
return result;
}
}
}
Leavecontroller.cs 文件在下面..
Leavecontroller.cs file is below..
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using ProjectManagementSystem.Models;
using Telerik.Web.Mvc;
namespace LeaveModule.Controllers
{
public class LeaveController : Controller
{
//
// GET: /Leave/
public ProjectManagementSystemEntities3 pb = new ProjectManagementSystemEntities3();
public ActionResult Index()
{
return View();
}
public ActionResult LeaveSet()
{
return View();
}
[HttpPost]
public ActionResult LeaveSet(leave_master l)
{
if (ModelState.IsValid)
{
pb.leave_master.AddObject(l);
pb.SaveChanges();
return RedirectToAction("Index");
}
return RedirectToAction("Index");
}
public ActionResult LeaveShow()
{
var leave_master = pb.leave_master.Include("user_master");
ViewBag.leave_id = new SelectList(pb.user_master, "user_id", "user_real_name");
return View(leave_master.ToList());
}
[GridAction]
public ActionResult _SelectBatchEditing()
{
return View(new GridModel(LeaveGridviewFetch.all()));
}
}
}
查看文件
LeaveSet.ascx (路径视图/Leave/LeaveSet.ascx)
View file
LeaveSet.ascx(path View/Leave/LeaveSet.ascx)
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<LeaveModule.Models.LeaveSet>" %>
<script src="<%: Url.Content("~/Scripts/jquery-1.5.1.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.min.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js") %>" type="text/javascript"></script>
<% using (Html.BeginForm("LeaveSet","Leave",FormMethod.Post)) { %>
<%: Html.ValidationSummary(true) %>
<fieldset>
<legend>LeaveSet</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.user_id) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.user_id) %>
<%: Html.ValidationMessageFor(model => model.user_id) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.leave_start_date) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.leave_start_date) %>
<%: Html.ValidationMessageFor(model => model.leave_start_date) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.leave_end_date) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.leave_end_date) %>
<%: Html.ValidationMessageFor(model => model.leave_end_date) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.leave_description) %>
</div>
<div class="editor-field">
<%: Html.EditorFor(model => model.leave_description) %>
<%: Html.ValidationMessageFor(model => model.leave_description) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
<div>
<%: Html.ActionLink("Back to List", "Index") %>
</div>
其中ProjectManagementSystemEntities3
是.edmx文件的对象,该文件是从数据库创建的.而leave_master
是我的桌子..
那么如何在MVC中执行这些操作呢?
Where ProjectManagementSystemEntities3
is an object of .edmx file which is created from database. and leave_master
is my table..
So how to do these in MVC?
推荐答案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ProjectManagementSystem.Models;
namespace LeaveModule.Models
{
public class LeaveSetFetch
{
public static IList<LeaveSet> all()
{
IList<LeaveSet> result =
(IList<LeaveSet>)HttpContext.Current.Session["leave"];
if (result == null)
{
HttpContext.Current.Session["leave"] = result =
(from l in new ProjectManagementSystemEntities3().leave_master
select new LeaveSet
{
user_id = l.user_id,
leave_start_date = l.leave_start_date,
leave_end_date = l.leave_end_date,
leave_description = l.leave_description,
TimeSpan ts = leave_end_date.Subtract(leave_start_date);
leave_days = ts.Days;
}).ToList();
}
return result;
}
}
}
尝试这个
TimeSpan ts = DateTime.Now.AddDays(-7) - DateTime.Now.AddDays(8);
double dayss = ts.TotalDays;
这篇关于如何计算从开始日期和结束日期开始的天数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!