/// <summary> /// Initialize a new instance based on the specified <paramref name="timestamp"/>. /// </summary> /// <param name="timestamp">A timestamp.</param> public EssentialsDateWeek(EssentialsDateTime timestamp) { Week = Iso8601Utils.GetWeekNumber(timestamp.DateTime); Start = TimeUtils.GetFirstDayOfWeek(timestamp.DateTime); End = TimeUtils.GetLastDayOfWeek(timestamp.DateTime); if (End.Month == 1 && Week == 1) { Year = End.Year; } else if (Start.Month == 12 && Week >= 50) { Year = Start.Year; } else { Year = timestamp.Year; } }
/// <summary> /// Gets the first day of the week of the specified <paramref name="date"/> and based on <paramref name="startOfWeek"/>. /// </summary> /// <param name="date">The date.</param> /// <param name="startOfWeek">The first day of the week (eg. <see cref="DayOfWeek.Monday"/> or /// <see cref="DayOfWeek.Sunday"/>).</param> /// <returns>An instance of <see cref="DateTimeOffset"/> representing the first day of the week.</returns> public static DateTimeOffset GetFirstDayOfWeek(DateTimeOffset date, DayOfWeek startOfWeek) { return(TimeUtils.GetFirstDayOfWeek(date, startOfWeek)); }
/// <summary> /// Gets the first day of the week of the specified <paramref name="date"/>. Monday is considered the first day of /// the week. /// </summary> /// <param name="date">The date.</param> /// <returns>An instance of <see cref="DateTime"/> representing the first day of the week.</returns> public static DateTime GetFirstDayOfWeek(DateTime date) { return(TimeUtils.GetFirstDayOfWeek(date)); }