2012-03-23 53 views
0

如何设置文本框的值上个月(以前月底)的最后一天,用今天的日期。设置文本框的值较上月

例如:

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

感谢

+0

[在c#中获取上个月的第一天和最后一天的日期]的可能重复(http://stackoverflow.com/questions/591752/get-the-previous-months-first-and-last-day-dates-在-C-锐) – itsmatt 2012-03-23 12:47:25

+0

哈......刚刚拿到这个问题里面4个重复。拿你的选择。 – 2012-03-23 12:52:23

回答

2

取当月的第一天,减去1:

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

使用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"); 
0

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

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

好奇..如果当前日期是什么1?然后它会添加-0天吗? – 2012-03-23 12:51:23

+0

@ChrisGessler你是对的,没有必要减一的日子。我已更新。 – daryal 2012-03-23 12:56:31

1
DateTime date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddDays(-1); 
textBox1.Text = date.ToShortDateString(); 
+0

感谢您的回答+1 – Zaki 2012-03-23 13:07:30

0

在C#:

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

然后调用.ToString(),并通过在你喜欢的任何格式。