يتم إعطاؤك مقتطف رمز يحتوي على دالة `EndOfMonth` والتي تأخذ معلمة `time.Time` `t` التي تمثل تاريخًا ووقتًا محددين. تُستخدم هذه الوظيفة لحساب نهاية الشهر للإدخال المحدد `t`.

مهمتك هي تنفيذ الدالة `BeginningOfMonth` المفقودة واستخدامها لحساب نهاية الشهر لأي إدخال `time.Time` معين.

لتنفيذ الدالة `BeginningOfMonth`، عليك مراعاة ما يلي:

- يجب أن تأخذ الدالة `BeginningOfMonth` أيضًا معلمة `time.Time` التي تمثل تاريخًا ووقتًا محددين.
- يجب أن تُرجع قيمة "time.Time" التي تمثل بداية الشهر للإدخال المحدد.

يمكن استخدام الدالة `EndOfMonth` على النحو التالي:
```اذهب
t := time.Date(2022, time.December, 15, 0, 0, 0, 0, time.UTC)
endOfMonth := EndOfMonth(t)
```

مهمتك هي تنفيذ وظيفة `BeginningOfMonth` واستخدامها لإكمال وظيفة `EndOfMonth`، مع التأكد من أنها تحسب بدقة نهاية الشهر لأي قيمة مُدخلة لـ `time.Time`.

ملاحظة: يمكنك افتراض أن إدخال "الوقت.الوقت" سيكون دائمًا صالحًا ولن يكون خارج نطاق التواريخ المعتمد.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}