【问题标题】:Set Textbox value to last month将文本框值设置为上个月
【发布时间】:2012-04-08 00:38:36
【问题描述】:

如何使用今天的日期将文本框值设置为上个月的最后一天(到上个月末)。

例如:

如果今天是 23/03/2012 文本框值应该是 29/02/2012 如果下个月来,日期是 12/04/2012 那么文本框值应该是 31/03/2012 等等

谢谢

【问题讨论】:

标签: c# textbox


【解决方案1】:

以当月的第一天减去1:

DateTime value = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1);

【讨论】:

    【解决方案2】:

    使用 DateTime.DaysInMonth 完成此操作:

    var daysInMonth = DateTime.DaysInMonth(dt.Year, dt.Month - 1);
    var lastDayInMonth = new DateTime(dt.Year, dt.Month - 1, daysInMonth);
    textBox1.Text = lastDayInMonth.ToString("dd/MM/yyyy");
    

    【讨论】:

      【解决方案3】:

      获取当月的第一天并减去一天。

      DateTime lastDayOfThePreviousMonth = dateSelected.AddDays(-dateSelected.Day);
      

      【讨论】:

      • 很好奇.. 如果当前日期是 1 怎么办?那么它会添加-0天吗?
      • @ChrisGessler 你是对的,不需要从天数中减去一个。我已经更新了。
      【解决方案4】:
      DateTime date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1);
      textBox1.Text = date.ToShortDateString();
      

      【讨论】:

        【解决方案5】:

        在 C# 中:

        DateTime dt = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddDays(-1); 
        

        然后调用.ToString() 并以您喜欢的任何格式传递。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多