c# - للصف - مشاريع الفيجوال بيسك جاهزة




كيفية تحويل عدد الأيام إلى سنوات، أشهر وأيام (2)

لا يمكنك لأن ذلك يعتمد على تاريخ البدء أي 30 يوما قد يكون 1 شهر 1 يوم، أو 1 شهر 2 أيام، أو أقل من شهر أو 365 يوما ستكون أقل من سنة إذا كان سنة كبيسة

هذا السؤال له إجابة هنا:

إذا كان لدي تاريخين ثم أحصل على الفرق بينهما في أيام مثل هذا المنصب .

كيفية تفصيل ذلك في طريقة العرض التالية:

تحويل الأيام إلى ( number of years,number of months and the rest in the number of days )


ليس هناك حل "من خارج منطقة الجزاء" لهذا. المشكلة هي أنك تتعامل مع البيانات المتغيرة أي ليس كل سنوات 365 يوما، على سنة كبيسة يصبح 366. وعلاوة على ذلك، لا يمكن افتراض كل شهر ليكون معيار 30 يوما.

من الصعب جدا حساب هذا النوع من المعلومات بدون سياق - لديك مدة في الأيام، ومع ذلك، لحساب (على الأقل بدقة) عدد السنوات / أشهر تحتاج السياق . على سبيل المثال، تحتاج إلى معرفة أي شهر معين وأي سنة معينة تتعامل معها لتحديد ما إذا كانت تلك السنة سنة كبيسة أو إذا كان هذا الشهر المحدد 30/31 يوما وما إلى ذلك ...

بناء على تعليقاتكم والشروط التالية

  • 1 سنة = 365 يوما
  • 1 شهر = 30 يوما

ثم التعليمات البرمجية التالية القيام بهذه المهمة

DateTime startDate = new DateTime(2010, 1, 1);
DateTime endDate = new DateTime(2013, 1, 10);
var totalDays = (endDate - startDate).TotalDays;
var totalYears = Math.Truncate(totalDays / 365);
var totalMonths = Math.Truncate((totalDays % 365) / 30);
var remainingDays = Math.Truncate((totalDays % 365) % 30);
Console.WriteLine("Estimated duration is {0} year(s), {1} month(s) and {2} day(s)", totalYears, totalMonths, remainingDays);




datetime