-1

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

要获取当前日期并将其传递给bind-value我,请执行以下操作:

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

我说的是输入日期:

<input type="date" class="form-control" @bind-value="@Pre.Fecha_Inicio" />

这是另一个输入日期:

<input type="date" class="form-control" @bind-value="@Precio.Fecha_Final" />

这段代码是把一个月的最后一天放到结束日期,但我不知道如何正确使用它:

private async Task AddDays()
{
    DateTime now = DateTime.Now;
    var startDate = new DateTime(now.Year, now.Month, 1);
    var endDate = startDate.AddMonths(1).AddDays(-1);
}
4

3 回答 3

1

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

public Precio Pre = new Precio()
    {           
       Fecha_Inicio = DateTime.Now,
       Fecha_Final = Fecha_Inicio.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);
    }
}
于 2020-07-26T18:29:12.810 回答
0

你可以试试这个:

var today = DateTime.Today;

var first = new DateTime(today.Year, today.Month, 1);
var second = first.AddMonths(1).AddDays(-1);

请注意,此解决方案相当混乱,但您可以添加一些注释或使用更合适的变量名称以使其更好一些且更具可读性。

你也可以使用这个:

var today = DateTime.Today;
int daysCount = DateTime.DaysInMonth(today.Year, today.Month);

var first = new DateTime(today.Year, today.Month, 1);
var last = new DateTime(today.Year, today.Month, daysCount);
于 2020-07-26T18:24:15.153 回答
-1

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

DateTime.DaysInMonth(now.Year, now.Month);

对于 8 月,该函数将返回 31。

在这里找到

于 2020-07-26T17:58:30.063 回答