private static unsafe long ParseNthWeekDay(CronField field, ref char *pointer, int dayOfWeek, ref CronExpressionFlag flags, out byte nthDayOfWeek) { nthDayOfWeek = (byte)ParseNumber(field, ref pointer, MinNthDayOfWeek, MaxNthDayOfWeek); flags |= CronExpressionFlag.NthDayOfWeek; return(GetBit(dayOfWeek)); }
private static StringBuilder AppendFieldValue(StringBuilder expressionBuilder, CronField field, long fieldValue) { if (field.AllBits == fieldValue) { return(expressionBuilder.Append('*')); } // Unset 7 bit for Day of week field because both 0 and 7 stand for Sunday. if (field == CronField.DaysOfWeek) { fieldValue &= ~(1 << field.Last); } for (var i = GetFirstSet(fieldValue); ; i = GetFirstSet(fieldValue >> i << i)) { expressionBuilder.Append(i); if (fieldValue >> ++i == 0) { break; } expressionBuilder.Append(','); } return(expressionBuilder); }
private static unsafe long ParseStar(CronField field, ref char *pointer) { return(Accept(ref pointer, '/') ? ParseStep(field, ref pointer, field.First, field.Last) : field.AllBits); }
/// <summary> /// 内部构造函数 /// </summary> /// <param name="field"></param> /// <param name="message"></param> internal CronFormatException(CronField field, string message) : this($"{field}: {message}") { }