如何在C#中将DateTime设置为月份的第一个月?将DateTime设置为月份开始
77
A
回答
171
var now = DateTime.Now;
var startOfMonth = new DateTime(now.Year,now.Month,1);
+52
小费:总是把`DateTime。现在`变成一个变量,并使用它,如果你要重复使用该值。如果此代码正好在午夜左右执行,则出现错误的可能性很小;对'DateTime.Now`的两次调用可能会在午夜的每一侧发生,从而导致可能的奇怪效果。 – 2011-02-15 10:43:16
+0
好点。我认为在新年前夕午夜是可能导致问题的时间。 – 2011-02-15 10:48:09
2
DateTime now = DateTime.Now;
DateTime date = new DateTime(now.Year, now.Month, 1);
您可以用别的代替DateTime.Now
38
像这样的工作
DateTime firstDay = DateTime.Today.AddDays(1 - DateTime.Today.Day);
0
这应该是高效的和正确的:
DateTime RoundDateTimeToMonth(DateTime time)
{
long ticks = time.Ticks;
return new DateTime((ticks/TimeSpan.TicksPerDay - time.Day + 1) * TimeSpan.TicksPerDay, time.Kind);
}
这里ticks/TimeSpan.TicksPerDay
re将达到给定的time
和- time.Day + 1
的整数天数重置为月初。
7
有点迟到了,但这里是没有的伎俩,我
public static class DateTimeExtensions
{
public static DateTime FirstDayOfMonth(this DateTime dt)
{
return new DateTime(dt.Year, dt.Month, 1);
}
}
4
public static DateTime FirstDayOfMonth(this DateTime current)
{
return current.AddDays(1 - current.Day);
}
0
扩展方法我刚刚创建基于尼克的答案和一些扩展方法人对SO
public static class DateTimeExtensions
{
/// <summary>
/// get the datetime of the start of the week
/// </summary>
/// <param name="dt"></param>
/// <param name="startOfWeek"></param>
/// <returns></returns>
/// <example>
/// DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Monday);
/// DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);
/// </example>
/// <remarks>http://stackoverflow.com/a/38064/428061</remarks>
public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
{
var diff = dt.DayOfWeek - startOfWeek;
if (diff < 0)
diff += 7;
return dt.AddDays(-1 * diff).Date;
}
/// <summary>
/// get the datetime of the start of the month
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
/// <remarks>http://stackoverflow.com/a/5002582/428061</remarks>
public static DateTime StartOfMonth(this DateTime dt)
{
var now = DateTime.Now;
return new DateTime(now.Year, now.Month, 1);
}
/// <summary>
/// get datetime of the start of the year
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static DateTime StartOfYear(this DateTime dt)
{
var now = DateTime.Now;
return new DateTime(now.Year, 1, 1);
}
}
-1
var currentDate = DateTime.UtcNow.Date;
var startDateTimeOfCurrentMonth = currentDate.AddDays(-(currentDate.Day - 1));
0
希望这有助于你。
textbox1.Text =“01-”+ DateTime.Now.ToString(“MMM-yyyy”);
相关问题
- 1. SQL将特定月份设置为年份的第一个月
- 2. 将月历设置为X月的月份
- 3. 选择框月份和月份从PHP当前月份开始
- 4. 获取月份开始和月末
- 5. Excel 2007:按月开始月份倒数
- 6. 为什么要将月份数设置为传递给mktime的实际月份?
- 7. 如何查找从r脚本中的datetime开始的月份和年份
- 8. 如何将datetimepicker值自动设置为所选月份的第一个月份?
- 9. 选择开始年份和开始月份之间的数据以结束年份和结束月份?
- 10. DatePicker设置月份错误
- 11. 匹配月份和年份Python和datetime
- 12. 从特定月份开始计算周
- 13. 获取开始日期和月份
- 14. 如何在Python3中使用datetime将日期转换为月份?
- 15. 如果开始月份不是1月份,请指定年份编号
- 16. 如何将月份转换为java中的年份和月份
- 17. 将datetime字段的值设置为null
- 18. 在DateTime对象中设置年份
- 19. 从现在开始只查询一个月的月份()
- 20. 从这个月开始的SQL ORDER BY月份
- 21. 排序12个月(1-12)与给定的开始月份
- 22. 从4月份开始的SQL排序月末(mmm-yy)
- 23. 存储过程,返回startdate作为月份开始
- 24. 使用datetime将分钟转换为月
- 25. 从当前月份开始的月份得到mysql表中数值的总和
- 26. 如何获取大写DateTime月份?
- 27. 从日期,月份和年份开始的Python时间戳
- 28. 设置格式月份DatePicker延长DialogFragment
- 29. java.util.Calendar没有正确设置月份
- 30. UITextField将光标设置为开始文本位置
本月开始? – 2011-02-15 10:36:22
所以要了解它,..每个月的日期都以1开头..他想知道本月开始的日子 – 2011-02-15 10:37:31
如果我们在1月份,它应该显示2011年1月1日和2月,然后01-Feb-2011 – learning 2011-02-15 10:38:23