DateObject “week beginning” object

dateList1=Table[{2017,12,d},{d,10,31}];
dateList2=Table[{2018,1,d},{d,1,20}];
dateList=Join[dateList1,dateList2];

DateObject[{2017,12,31},"WeekBeginningSunday"]
DateObject[{2018,1,1},"WeekBeginningSunday"]

Table[{d,DateObject[d,"WeekBeginningSunday"]},{d,dateList}]//Grid

ClearAll[dateFromDateObjectWeekBeginningIconography]
dateFromDateObjectWeekBeginningIconography[d_:DateObject[{_Integer,_Integer,_Integer},"WeekBeginningSunday"]]:=DateObject[d,"WeekBeginningSunday"]//ToString[#,InputForm,CharacterEncoding->"ASCII"]&//StringReplace[#,RegularExpression["DateObject\\[(\\{\\d{4}, \\d{1,2}, \\d{1,2}\\}),.*"]-> "$1"]&//ToExpression

dateFromDateObjectWeekBeginningIconography[DateObject[{2017,12,31},"WeekBeginningSunday"]]
dateFromDateObjectWeekBeginningIconography[DateObject[{2018,1,1},"WeekBeginningSunday"]]

ClearAll[mengDateObjectWeekBeginning]
mengDateObjectWeekBeginning[d_:{_Integer,_Integer,_Integer},"WeekBeginningSunday"]:=Module[
{dateWeekBeginning},
dateWeekBeginning=dateFromDateObjectWeekBeginningIconography[DateObject[d,"WeekBeginningSunday"]];
If[
DateDifference[dateWeekBeginning,d]<Quantity[0,"Days"],
With[
{offset=SelectFirst[Range[0,7],With[{m=-#},DateString[DatePlus[d,Quantity[m,"Days"]],"ISOWeekDay"]]==="7"&]},
With[{q=Quantity[-offset,"Days"]},DateObject[DatePlus[d,q],"WeekBeginningSunday"]]
],
DateObject[d,"WeekBeginningSunday"]
]
]

mengDateObjectWeekBeginning[{2017,12,31},"WeekBeginningSunday"]//ToString[#,InputForm,CharacterEncoding->"ASCII"]&

mengDateObjectWeekBeginning[{2017,12,31},"WeekBeginningSunday"]
mengDateObjectWeekBeginning[{2018,1,1},"WeekBeginningSunday"]

Table[{d,mengDateObjectWeekBeginning[d,"WeekBeginningSunday"]},{d,dateList}]//Grid