K@m@l نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 على تطبيق لي بـ #C أريد حساب الزمن النسبي المنُنقضي انطلاقا من متغير datetime، مثال: منذ ساعتين. منذ 3أيام وساعات. منذ شهر واحد.كيف أحصل على نفس النتيجة انطلاقا من متغير الوقت؟ اقتباس
0 E.Nourddine نشر 28 نوفمبر 2015 أرسل تقرير نشر 28 نوفمبر 2015 (معدل) الطريقة الفعالة لفعل ذلك وهي بحساب المدة الزمنية المُنقضية منذ وقت النشر إلى الآن، ووضع عدة معايير للتحكم في الشكل النهائي الظاهر على شاشة المستخدم، مثلا عند انقاء 24 ساعة نكتب منذ يوم، بعد 60 دقيقة أي منذ ساعة وهكذا...// تعريف متغيرات الزمن دقيقة، ساعة، يوم... const int SECOND = 1; const int MINUTE = 60 * SECOND; const int HOUR = 60 * MINUTE; const int DAY = 24 * HOUR; const int MONTH = 30 * DAY; // حساب المدة المنقضية ووضعها في متغير var ts = new TimeSpan(DateTime.UtcNow.Ticks - yourDate.Ticks); double delta = Math.Abs(ts.TotalSeconds); //If التأكد من قيمة المدةالمُنقضية عن طريق دالة if (delta < 1 * MINUTE) { return ts.Seconds == 1 ? "one second ago" : ts.Seconds + " منذ ثانية"; } if (delta < 2 * MINUTE) { return "منذ دقيقة"; } if (delta < 45 * MINUTE) { return ts.Minutes + " منذ دقائق"; } if (delta < 90 * MINUTE) { return "منذ ساعة"; } if (delta < 24 * HOUR) { return ts.Hours + " ساعة"; } if (delta < 48 * HOUR) { return "الأمس"; } if (delta < 30 * DAY) { return ts.Days + " يوم"; } if (delta < 12 * MONTH) { int months = Convert.ToInt32(Math.Floor((double)ts.Days / 30)); return months <= 1 ? "one month ago" : شهر+ " months ago"; } else { int years = Convert.ToInt32(Math.Floor((double)ts.Days / 365)); return years <= 1 ? "one year ago" : years + " years ago"; }الأمر غير معقد، فقط يحتاج إلى بعض التركيز- وقد أرفقت المثال بالتعليقات ليسهل فهمه- . تم التعديل في 28 نوفمبر 2015 بواسطة E.Nourddine اقتباس
السؤال
K@m@l
على تطبيق لي بـ #C أريد حساب الزمن النسبي المنُنقضي انطلاقا من متغير datetime، مثال:
كيف أحصل على نفس النتيجة انطلاقا من متغير الوقت؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.