C# 去年怎么查?

C# 去年怎么查?,c#,C#,我想计算去年未使用的假期,并将其显示在网格列中。我知道我只需要做一个简单的计算,比如: 假期天数-UsedVacationDays==去年剩余的假期天数 但我怎样才能确认我只收到去年的数据呢?我知道必须要有DateTime.Today.AddYears(-1)至少我认为是这样,我的代码如下: public double UnusedVacationDays { get { return (this.VacationDays - this.UsedVacationD

我想计算去年未使用的假期,并将其显示在网格列中。我知道我只需要做一个简单的计算,比如:

假期天数-UsedVacationDays==去年剩余的假期天数

但我怎样才能确认我只收到去年的数据呢?我知道必须要有
DateTime.Today.AddYears(-1)
至少我认为是这样,我的代码如下:

public double UnusedVacationDays
{
    get
    {
        return (this.VacationDays - this.UsedVacationDays);
    }
}
编辑

public double GetUsedVacation(int year)
{
    double hours = 0;
    IEnumerable<HtVacationDay> vacationDays = this.HtVacationDays.Where(x => x.FromDate.Year == year && x.FromDate < DateTime.Today);
    foreach (HtVacationDay vacation in vacationDays)
    {
        TimeSpan span = vacation.ToDate - vacation.FromDate;
        if (span.TotalHours > 8)
        {
            hours += span.TotalHours / 3;
        }
        else
        {
            hours += span.TotalHours;
        }
    }
    return hours / 8;
public double GetUsedVacation(整数年)
{
双倍小时=0;
IEnumerable vacationDays=this.HtVacationDays.Where(x=>x.FromDate.Year==Year&&x.FromDate8)
{
小时数+=跨度总小时数/3;
}
其他的
{
小时数+=跨度总小时数;
}
}
返程时间/8小时;

感谢您的帮助!^^

在计算假期时,请使用您所在年份的日期范围:

public double GetUsedVacation(int year)
 {
    double hours = 0;

    IEnumerable<HtVacationDay> vacationDays = 
        HtVacationDays.Where(x => x.FromDate.Year == year && 
                                  x.FromDate < DateTime.Today);

    DateTime firstDayOfYear = new DateTime(year, 1, 1);
    DateTime lastDayOfYear = new DateTime(year, 12, 31);

    foreach (HtVacationDay vacation in vacationDays)
    {
        DateTime from = vacation.FromDate.Date < firstDayOfYear ?
              firstDayOfYear : vacation.FromDate;

        DateTime to = vacation.ToDate.Date > lastDayOfYear ?
              lastDayOfYear : vacation.ToDate;

        var vacationHours = (to - from).TotalHours;            

        if (vacationHours > 8)            
            hours += vacationHours / 3;            
        else            
            hours += vacationHours;            
    }

    return hours / 8;
}
public double GetUsedVacation(整数年)
{
双倍小时=0;
i可数假期天数=
HtVacationDays.Where(x=>x.FromDate.Year==Year&&
x、 FromDatelastDayOfYear?
一年的最后一天:假期;
var vacationHours=(到-从).TotalHours;
如果(假期时间>8小时)
小时数+=假期小时数/3;
其他的
小时数+=假期小时数;
}
返程时间/8小时;
}

另外,我认为计算小时数应该复杂得多。因为对于从15:00开始到第二天13:00结束的假期,您的代码将返回22个总小时数。除以3,得出的假期时间略少于
3
小时数。但实际上,如果我们的工作日是从上午9:00到18:00,则应给出
5+4=9
小时数假期的rs。

那么,你有两个双重值(例如
12.0
6.5
),你想找出其中哪一部分与去年有关?检查日期的
.year
属性?@SergeyBerezovskiy yes!@LasseV.Karlsen我没有.year属性。那么,你如何获得去年的“已用假期”呢?