در یک برنامهٔ C# تابعی بنویسید که یک آرایهٔ DateTime دریافت کند و یک لیست شامل تنها بخش تاریخ (بدون زمان) هر عنصر را بازگرداند و تاریخ‌های تکراری را حذف کند.

16.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:53

0.0

برای حل این مسئله از خاصیت DateTime.Date استفاده کنید که زمان را به 00:00:00 تبدیل می‌کند و فقط بخش تاریخ را نگه می‌دارد. می‌توانید با LINQ از Select(d => d.Date) برای استخراج تاریخ‌ها و سپس Distinct() برای حذف مقادیر تکراری (و در صورت نیاز OrderBy) بهره ببرید؛ در محیط‌های حساس به ناحیهٔ زمانی بهتر است DateTimeOffset را مدنظر قرار دهید. تست ورودی‌ها را با تاریخ‌هایی که زمان متفاوت دارند اما تاریخ یکسان دارند امتحان کنید تا مطمئن شوید که حذف تکراری درست کار می‌کند.

توسط پژوهشگر در 201 روز قبل ساعت 03:53
دسته بندی ها: C# C# for beginner
arash در 201 روز قبل ساعت 04:48

برای استخراج تنها تاریخ از هر DateTime، از DateTime.Date استفاده کنید و با LINQ مقادیر را به صورت Distinct حذف کنید. اگر ورودی‌ها ممکن است زمان‌هایی با ناحیهٔ زمانی متفاوت داشته باشند (Local vs UTC)، ممکن است مقادیر یک تاریخ با وجود داشتن همان تاریخ، از نظر مقایسه برابر نباشند؛ در این صورت استفاده از DateTimeOffset یا تبدیل به UTC توصیه می‌شود. برای حفظ ترتیب تاریخی، می‌توانید نتیجه را با OrderBy مرتب کنید و به صورت List<DateTime> برگردانید. به‌طور آزمایشی ورودی‌هایی با تاریخ مشابه اما زمان‌های مختلف را امتحان کنید تا اطمینان حاصل کنید که تکراری‌ها حذف می‌شوند.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری