如何计算从开始日期和结束日期开始的天数? [英] How to count number of days from start date and end date(which are given)?

查看:133
本文介绍了如何计算从开始日期和结束日期开始的天数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



在我的项目中,我必须计算 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆