یک برنامهٔ C# بنویسید که لیستی از زمانهای کامل (timestamp) را خوانده، با استفاده از DateTime.Date آنها را بر اساس روز گروهبندی کرده و برای هر روز تعداد رخدادها را نمایش دهد.
13.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 00:51 0.0
برای حل، یک برنامهٔ کنسول بنویسید که هر خط ورودی را با DateTime.Parse یا DateTime.TryParse/TryParseExact به DateTime تبدیل کند، سپس با استفاده از خصوصیت DateTime.Date یا با LINQ GroupBy یا یک Dictionary بر اساس روز گروهبندی و شمارش انجام دهد و در خروجی روزها را با قالب مانند yyyy-MM-dd همراه با تعداد نمایش دهد؛ از TryParse برای مدیریت ورودیهای نامعتبر استفاده کنید. این روش برای خودکارسازی پردازش لاگها، جمعبندی روزانه در وب و تحلیلهای عددی/علمی کاربردی است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پردازش لاگها بهتر است از DateTime.TryParseExact با CultureInfo.InvariantCulture یا از DateTimeOffset.Parse/TryParse استفاده کنید تا تفاوت مناطق زمانی و فرمتهای عددی نادیده گرفته نشود. هنگام گروهبندی با DateTime.Date توجه کنید که DateTimeKind و منطقهٔ زمانی باعث جابهجایی روز شوند، پس اگر ورودی حاوی آفست است DateTimeOffset را به UTC تبدیل و سپس Date را بگیرید. برای فایلهای بزرگ از پردازش خط به خط و یک Dictionary یا LINQ با streaming استفاده کنید تا حافظه زیاد مصرف نشود. در نهایت خروجی را با ToString("yyyy-MM-dd") قالببندی و ورودیهای نامعتبر را لاگ یا شمارش کنید.
گزارش