C# 在两个输入中获取当前月份的第一天和最后一天?

C# 在两个输入中获取当前月份的第一天和最后一天?,c#,asp.net,blazor,C#,Asp.net,Blazor,你好社区我有两个输入日期开始日期和结束日期开始日期必须是当前日期,结束日期必须是当月的最后一天我怎么做 要获取当前日期并将其传递到绑定值中,我执行以下操作: public Precio=new Precio() { Fecha_Inicio=日期时间。现在, }; 我把它作为输入日期: 这是另一个输入日期: 此代码用于将月的最后一天设置为结束日期,但我不知道如何正确使用它: private async Task AddDays() { DateTime now=DateTime.now

你好社区我有两个输入日期开始日期和结束日期开始日期必须是当前日期,结束日期必须是当月的最后一天我怎么做

要获取当前日期并将其传递到
绑定值
中,我执行以下操作:


public Precio=new Precio()
{
Fecha_Inicio=日期时间。现在,
};
我把它作为输入日期:


这是另一个输入日期:


此代码用于将月的最后一天设置为结束日期,但我不知道如何正确使用它:

private async Task AddDays()
{
DateTime now=DateTime.now;
var startDate=新的日期时间(now.Year,now.Month,1);
var endDate=开始日期。添加月份(1)。添加天数(-1);
}

要在特定日期内获取月的最后一天,只需调用:

DateTime.DaysInMonth(now.Year,now.Month);
8月份,该函数将返回31

找到

您可以尝试以下方法:

var today=DateTime.today;
var first=新日期时间(今天.年,今天.月,1);
第二个变量=第一个.AddMonths(1).AddDays(-1);
请注意,此解决方案相当混乱,但您可以添加一些注释或使用更合适的变量名,使其更好、更具可读性

此外,您还可以使用:

var today=DateTime.today;
int dayscont=DateTime.DaysInMonth(今天.Year,今天.Month);
var first=新日期时间(今天.年,今天.月,1);
var last=新的日期时间(今天.年,今天.月,日);

我个人会为此创建一个扩展方法,因为我可以看到在其他地方重用它。然后叫这样的话:

public Precio Pre = new Precio()
    {           
       Fecha_Inicio = DateTime.Now,
       Fecha_Final = Fecha_Inicio.LastDayOfMonth()
    };   


默认情况下,表单中必须设置开始和结束日期,用户不会填写这些日期,但如果您可以在表单中看到它们,这是否回答了您的问题。您可以使用DateTime.Now作为开始日期,这里提到的方法作为结束日期。。。什么不起作用。。。您能否提供详细信息plzpublic Precio Pre=new Precio(){Fecha_Inicio=DateTime.Now,Fecha_Final=DateTime.DaysInMonth(Fecha_Inicio.Year,Fecha_Inicio.Month);不允许我将开始日期设置为当前日期Fecha_Final=new DateTime(Fecha_Inicio.Year,Fecha_Inicio.Month,DateTime.DaysInMonth(Fecha_Inicio.Year,Fecha_Inicio.Month));因为DateTime.DaysInMonth(Fecha_Inicio.Year,Fecha_Inicio.Month)将只返回该月的最后一天(例如,对于8月份,它将返回31)!但是如何将这些变量传递给输入绑定值,例如Fecha inicio=today,Fecha_final=second您可以使用属性而不是变量(例如,public DateTime LastDay=new DateTime(DateTime.today.Year,DateTime.today.Month,DateTime.DaysInMonth(DateTime.today.Year,DateTime.today.Month)))我无法使用开始日期传递它LastDayOfMonth(),它不存在于当前上下文中
DateTime。现在
将是相同的,您可以传递它(即
Fecha\u Final=DateTime.Now.LastDayOfMonth()
)我已经按照您告诉我的那样编辑了它,但是现在是DateTime。现在不包含LastDayOfMonth的定义您必须使用
包含
DateTimeExtensions
类和
。你在这么做吗?看:不,这不是一个nuget软件包。这是一种扩展方法。在项目中创建一个名为“DateTimeExtensions”的新类文件。我通常会把它放在名为“helpers”或类似的子文件夹中。查看分配给文件的名称空间。添加类代码。在另一个类中(初始化
Precio
)向包含扩展方法的命名空间添加一个using指令。或者,不要将其放在扩展方法中,只需将
LastDayOfMonth
方法放在类中即可。不过,我不得不说,我的建议非常普通和直截了当。你应该知道的。
public static class DateTimeExtensions
{
    public static DateTime LastDayOfMonth(this DateTime inDate)
    {
        var daysInMonth = DateTime.DaysInMonth(inDate.Year, inDate.Month);
        return new DateTime(inDate.Year, inDate.Month, daysInMonth);
    }
}