Skip to content

Commit 9f36ad8

Browse files
committed
[修改]1. 修改时间帮助类的注释
1 parent 3cb87ab commit 9f36ad8

1 file changed

Lines changed: 42 additions & 12 deletions

File tree

GameFrameX.Utility/TimeHelper.cs

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,13 @@ public static int GetCrossDays(DateTime startTime, DateTime endTime, int hour =
238238
/// <summary>
239239
/// 获取两个本地时间戳之间的间隔天数
240240
/// </summary>
241-
/// <param name="startTimestamp">开始时间戳(秒)</param>
242-
/// <param name="endTimestamp">结束时间戳(秒)</param>
243-
/// <returns>间隔天数</returns>
241+
/// <param name="startTimestamp">开始时间戳(秒),UTC时间戳将被转换为本地时间</param>
242+
/// <param name="endTimestamp">结束时间戳(秒),UTC时间戳将被转换为本地时间</param>
243+
/// <returns>间隔天数,如果开始时间晚于结束时间,返回负数</returns>
244+
/// <remarks>
245+
/// 此方法会先将UTC时间戳转换为本地时间,然后计算两个本地时间之间的天数差
246+
/// 计算时会考虑日期的时分秒部分
247+
/// </remarks>
244248
public static int GetCrossLocalDays(long startTimestamp, long endTimestamp)
245249
{
246250
var startTime = UtcToLocalDateTime(startTimestamp);
@@ -251,29 +255,44 @@ public static int GetCrossLocalDays(long startTimestamp, long endTimestamp)
251255
/// <summary>
252256
/// 判断当前时间是否与指定时间处于同一周。
253257
/// </summary>
254-
/// <param name="start">指定时间的起始时间</param>
258+
/// <param name="start">指定时间的起始时间(Ticks)。表示自 0001 年 1 月 1 日午夜 00:00:00 以来所经过的时钟周期数</param>
255259
/// <returns>如果当前时间与指定时间处于同一周,则为 true;否则为 false。</returns>
260+
/// <remarks>
261+
/// 此方法将传入的ticks转换为DateTime后与当前时间比较是否在同一周
262+
/// 使用系统默认的周计算规则(周日为每周第一天)
263+
/// </remarks>
256264
public static bool IsNowSameWeek(long start)
257265
{
258266
return IsNowSameWeek(new DateTime(start));
259267
}
260268

261269
/// <summary>
262270
/// 判断当前时间是否与指定时间处于同一周。
271+
/// 以周一为每周的第一天,周日为每周的最后一天。
272+
/// 使用本地时间(DateTime.Now)进行比较。
263273
/// </summary>
264-
/// <param name="start">指定时间的起始时间。</param>
274+
/// <param name="start">指定时间的起始时间。可以是任意DateTime值。</param>
265275
/// <returns>如果当前时间与指定时间处于同一周,则为 true;否则为 false。</returns>
276+
/// <remarks>
277+
/// 此方法将调用IsSameWeek方法进行实际比较。
278+
/// 使用本地时区时间作为当前时间参考点。
279+
/// </remarks>
266280
public static bool IsNowSameWeek(DateTime start)
267281
{
268282
return IsSameWeek(start, DateTime.Now);
269283
}
270284

271285
/// <summary>
272286
/// 判断两个时间是否处于同一周。
287+
/// 以周一为每周的第一天,周日为每周的最后一天。
273288
/// </summary>
274-
/// <param name="start">起始时间。</param>
275-
/// <param name="end">结束时间。</param>
289+
/// <param name="start">起始时间。可以是任意DateTime值。</param>
290+
/// <param name="end">结束时间。可以是任意DateTime值。</param>
276291
/// <returns>如果两个时间处于同一周,则为 true;否则为 false。</returns>
292+
/// <remarks>
293+
/// 此方法会自动调整参数顺序,确保start是较早的时间。
294+
/// 通过计算较早时间所在周的周日时间点,判断另一个时间是否在同一周内。
295+
/// </remarks>
277296
public static bool IsSameWeek(DateTime start, DateTime end)
278297
{
279298
// 让start是较早的时间
@@ -297,31 +316,42 @@ public static bool IsSameWeek(DateTime start, DateTime end)
297316
/// <summary>
298317
/// 获取指定日期所在星期的时间。
299318
/// </summary>
300-
/// <param name="dateTime">指定日期。</param>
301-
/// <param name="day">星期几。</param>
302-
/// <returns>指定日期所在星期的时间。</returns>
319+
/// <param name="dateTime">指定日期。例如:2024-01-10</param>
320+
/// <param name="day">星期几。例如:DayOfWeek.Monday 表示星期一,DayOfWeek.Sunday 表示星期日</param>
321+
/// <returns>返回指定日期所在星期的指定星期几的零点时间。例如:dateTime为2024-01-10(星期三),day为DayOfWeek.Monday,则返回2024-01-08 00:00:00</returns>
322+
/// <remarks>
323+
/// 此方法将星期日(DayOfWeek.Sunday)视为每周的第7天,而不是第0天
324+
/// 返回的时间总是该日期的零点时间(00:00:00)
325+
/// </remarks>
303326
public static DateTime GetDayOfWeekTime(DateTime dateTime, DayOfWeek day)
304327
{
328+
// 将星期几转换为数字(1-7),将星期日从0转换为7
305329
var dd = (int)day;
306330
if (dd == 0)
307331
{
308332
dd = 7;
309333
}
310334

335+
// 获取指定日期是星期几(1-7),将星期日从0转换为7
311336
var dayOfWeek = (int)dateTime.DayOfWeek;
312337
if (dayOfWeek == 0)
313338
{
314339
dayOfWeek = 7;
315340
}
316341

342+
// 计算目标日期与当前日期的天数差,并返回目标日期的零点时间
317343
return dateTime.AddDays(dd - dayOfWeek).Date;
318344
}
319345

320346
/// <summary>
321347
/// 获取当前日期所在星期的时间。
322348
/// </summary>
323-
/// <param name="day">星期几。</param>
324-
/// <returns>当前日期所在星期的时间。</returns>
349+
/// <param name="day">星期几。例如:DayOfWeek.Monday 表示星期一,DayOfWeek.Sunday 表示星期日。</param>
350+
/// <returns>返回当前UTC日期所在星期的指定星期几的零点时间。例如:当前是2024-01-10(星期三),传入DayOfWeek.Monday,则返回2024-01-08 00:00:00。</returns>
351+
/// <remarks>
352+
/// 此方法使用UTC时间作为基准计算。
353+
/// 如果需要使用本地时间,请使用 GetDayOfWeekTime(DateTime.Now, day)。
354+
/// </remarks>
325355
public static DateTime GetDayOfWeekTime(DayOfWeek day)
326356
{
327357
return GetDayOfWeekTime(DateTime.Now, day);

0 commit comments

Comments
 (0)