Skip to content

Commit 6a5d9f6

Browse files
committed
Implement formats with day of the week
1 parent 30ab30e commit 6a5d9f6

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

core/common/src/format/LocalDateFormat.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public interface DateFormatBuilderFields {
1515
public fun appendMonthNumber(minLength: Int = 1)
1616
public fun appendMonthName(names: List<String>)
1717
public fun appendDayOfMonth(minLength: Int = 1)
18+
public fun appendDayOfWeek(names: List<String>)
1819
}
1920

2021
@DateTimeBuilder
@@ -66,6 +67,8 @@ public class LocalDateFormat private constructor(private val actualFormat: Forma
6667
actualBuilder.add(BasicFormatStructure(MonthNameDirective(names)))
6768

6869
override fun appendDayOfMonth(minLength: Int) = actualBuilder.add(BasicFormatStructure(DayDirective(minLength)))
70+
override fun appendDayOfWeek(names: List<String>) =
71+
actualBuilder.add(BasicFormatStructure(DayOfWeekDirective(names)))
6972

7073
override fun createEmpty(): Builder = Builder(actualBuilder.createSibling())
7174
override fun castToGeneric(actualSelf: Builder): DateFormatBuilder = this
@@ -163,6 +166,9 @@ internal class MonthNameDirective(names: List<String>) :
163166
internal class DayDirective(minDigits: Int) :
164167
UnsignedIntFieldFormatDirective<DateFieldContainer>(DateFields.dayOfMonth, minDigits)
165168

169+
internal class DayOfWeekDirective(names: List<String>) :
170+
NamedUnsignedIntFieldFormatDirective<DateFieldContainer>(DateFields.isoDayOfWeek, names)
171+
166172
internal object DateFormatBuilderSpec: BuilderSpec<DateFieldContainer>(
167173
mapOf(
168174
"ld" to DateFormatBuilderSpec

core/common/src/format/LocalDateTimeFormat.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ public class LocalDateTimeFormat private constructor(private val actualFormat: F
6767
override fun appendMonthName(names: List<String>) =
6868
actualBuilder.add(BasicFormatStructure(MonthNameDirective(names)))
6969
override fun appendDayOfMonth(minLength: Int) = actualBuilder.add(BasicFormatStructure(DayDirective(minLength)))
70+
override fun appendDayOfWeek(names: List<String>) =
71+
actualBuilder.add(BasicFormatStructure(DayOfWeekDirective(names)))
7072
override fun appendHour(minLength: Int) = actualBuilder.add(BasicFormatStructure(HourDirective(minLength)))
7173
override fun appendAmPmHour(minLength: Int) =
7274
actualBuilder.add(BasicFormatStructure(AmPmHourDirective(minLength)))

core/common/src/format/ValueBagFormat.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class ValueBag internal constructor(internal val contents: ValueBagConten
4747
year = localDate.year
4848
monthNumber = localDate.monthNumber
4949
dayOfMonth = localDate.dayOfMonth
50+
dayOfWeek = localDate.dayOfWeek
5051
}
5152

5253
/**
@@ -332,6 +333,8 @@ public class ValueBagFormat private constructor(private val actualFormat: Format
332333
override fun appendMonthName(names: List<String>) =
333334
actualBuilder.add(BasicFormatStructure(MonthNameDirective(names)))
334335
override fun appendDayOfMonth(minLength: Int) = actualBuilder.add(BasicFormatStructure(DayDirective(minLength)))
336+
override fun appendDayOfWeek(names: List<String>) =
337+
actualBuilder.add(BasicFormatStructure(DayOfWeekDirective(names)))
335338
override fun appendHour(minLength: Int) = actualBuilder.add(BasicFormatStructure(HourDirective(minLength)))
336339
override fun appendAmPmHour(minLength: Int) =
337340
actualBuilder.add(BasicFormatStructure(AmPmHourDirective(minLength)))

0 commit comments

Comments
 (0)