الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن حل مشكلة ناتج الطرح بالسالب بالنسبة للوقت ؟

بدأه red_scorpion1 في 11 أغسطس 2013 · 11 رد · 982 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

استخدم الكود التالى فى الحصول على ناتج فرق التوقيت الأول من الثانى

           // ساعات العمل الواجبة
            string must_work = "06:00";

            // الحصول على عدد ساعات العمل خلال اليوم
            DateTime startTime = DateTime.Parse("11/08/2013 08:00 AM");
            DateTime endTime = DateTime.Parse("11/08/2013 05:00 PM");
            TimeSpan ts = endTime.Subtract(startTime);
            string work_day_hours = String.Format("{0:00}:{1:00}", ts.Hours, ts.Minutes);

            // إذا كان عدد ساعات العمل خلال اليوم أكبر من عدد ساعات العمل اليومية للموظف
            if (Convert.ToDateTime(work_day_hours) > Convert.ToDateTime(must_work))
            {
                // حساب الفرق بين إجمالى عدد ساعات اليوم والساعات الفعلية للموظف
                DateTime work_day_hours_dt = Convert.ToDateTime(work_day_hours);
                DateTime must_work_dt = Convert.ToDateTime(must_work);
                TimeSpan t = work_day_hours_dt.Subtract(must_work_dt);
                string diff = String.Format("{0:00}:{1:00}", t.Hours, t.Minutes);
                DateTime diff_hours_dt = Convert.ToDateTime(diff);
                TimeSpan diff_hours = new TimeSpan(diff_hours_dt.Hour, diff_hours_dt.Minute, diff_hours_dt.Second);

                // تحويل وقت الإنصراف للصيغة الصحيحة قبل الطرح
                TimeSpan end_time_span = new TimeSpan(endTime.Hour, endTime.Minute, endTime.Second);

                // طرح عدد الساعات الزيادة من وقت الإنصراف
                TimeSpan time_diff_final = end_time_span.Subtract(diff_hours);

                             time_diff_final = diff_hours.Subtract(end_time_span);

                // وقت الإنصراف الجديد
                string diff_f = String.Format("{0:00}:{1:00}:{2:00}", time_diff_final.Hours, time_diff_final.Minutes, time_diff_final.Seconds);
                DateTime new_end_time = Convert.ToDateTime(diff_f);
                string xx = new_end_time.ToString("hh:mm tt");

الكود السابق يعمل بشكل سليم اذا كان الوقت الثانى وهو وقت الإنصراف PM فقط ولكن صادفتنى حالة شاذة حيث ان هذا المشروع خاص بمستشفى ومن الممكن ان يحضر الطبيب او المساعد فى موعده صباحا AM ولكن ينصرف AM فى اليوم التالى بحيث يكون الوقتين بهذا الشكل وكما تلاحظون ان الحضور فى يوم 11/08/2013 والإنصراف فى يوم أخر 12/08/2013

            DateTime startTime = DateTime.Parse("11/08/2013 08:00 AM");
            DateTime endTime = DateTime.Parse("12/08/2013 05:00 AM");

وحسب المطلوب منى وهو حساب الساعات الزائدة عن مواعيد عمله الفعليه والمسجلة بقاعدة البيانات اقوم بإستخراج الفرق وطرح من ساعة الإنصراف لكى أقوم بتسجيل موعد الإنصراف الصحيح والفارق اقوم بوضعه فى عمود أخر كساعات عمل إضافية  

 

بمعنى الأتى:

احمد يعمل عدد ( 6 ساعات يوميا )

موعد الحضور الذى تم تسجيلة ( 08:00 ص )

موعد الانصراف الذى تم تسجيله ( 04:00 م )

فرق عدد الساعات = ( الانصراف - الحضور ) - 6 ساعات يوميا = 2 ساعتين

هنا اقوم بطرح ساعتين من وقت الانصراف ليصبح الوقت الجديد = ( 02:00 م )

اقوم بتخزين ( ساعتين فرق ) فى عمود اخر

 

ولكن عند الإنصراف AM فى اليوم التالى وهو حالة شاذة يحدث خلل هنا تحديد 

                TimeSpan time_diff_final = end_time_span.Subtract(diff_hours);

حيث يظهر الفارق بالسالب وبالتالى لا استطيع حساب الوقت الجديد للإنصراف وان قمت بتبديل end_time_span مكان diff_hours سوف يظهر السالب لى فى حالة الانصراف PM والتى ليس بها مشكلة حاليا ؟؟؟

#2

لا يجب أن تعتمد على الوقت فقط وإنما على الوقت والتاريخ معا وعندما تقوم بعملية الطرح هو سيحتسب الفارق بالإيام أو يحول الأيام إلى 24 ساعة

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#3

وتاكد من عملTotalHours مع القيم الموحده من نفس الساعات واختلاف الدقائق

 

try this code

DateTime startTime = DateTime.Parse("11/08/2013 08:02 AM");
        DateTime endTime = DateTime.Parse("12/08/2013 05:20 AM");
        TimeSpan ts = endTime.Subtract(startTime);
       Label1.Text  = String.Format("{0:00}:{1:00}", ts.TotalHours , ts.Minutes);

تم تعديل هذه المشاركة بواسطة KARIMSOFT في 11 أغسطس 2013 في 03:33

#4
أبو أحمد المبرمج كتب:

لا يجب أن تعتمد على الوقت فقط وإنما على الوقت والتاريخ معا وعندما تقوم بعملية الطرح هو سيحتسب الفارق بالإيام أو يحول الأيام إلى 24 ساعة

 

السلام عليكم

 

هل من الممكن التوضيح اكثر بمثال بسيط جزاك الله خيرا لأنىى لا ادرى الكود المناسب والمطلوب اضافته لعمل ذلك ؟

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 11 أغسطس 2013 في 10:05

#5
KARIMSOFT كتب:

 

وتاكد من عملTotalHours مع القيم الموحده من نفس الساعات واختلاف الدقائق

 

try this code

DateTime startTime = DateTime.Parse("11/08/2013 08:02 AM");
        DateTime endTime = DateTime.Parse("12/08/2013 05:20 AM");
        TimeSpan ts = endTime.Subtract(startTime);
       Label1.Text  = String.Format("{0:00}:{1:00}", ts.TotalHours , ts.Minutes);

 

اخى العزيز 

اعلم انه يمكن اسناد القيمة عن طريق الخاصية Text وجزاك الله خيرا على محاولتك المساعدة ولكن ما اتحدث عنه هو

 

 

اقتباس
DateTime startTime = DateTime.Parse("11/08/2013 08:00 AM");
DateTime endTime = DateTime.Parse("12/08/2013 05:00 AM");

وحسب المطلوب منى وهو حساب الساعات الزائدة عن مواعيد عمله الفعليه والمسجلة بقاعدة البيانات اقوم بإستخراج الفرق وطرح من ساعة الإنصراف لكى أقوم بتسجيل موعد الإنصراف الصحيح والفارق اقوم بوضعه فى عمود أخر كساعات عمل إضافية  

 

بمعنى الأتى:

احمد يعمل عدد ( 6 ساعات يوميا )

موعد الحضور الذى تم تسجيلة ( 08:00 ص )

موعد الانصراف الذى تم تسجيله ( 04:00 م )

فرق عدد الساعات = ( الانصراف - الحضور ) - 6 ساعات يوميا = 2 ساعتين

هنا اقوم بطرح ساعتين من وقت الانصراف ليصبح الوقت الجديد = ( 02:00 م )

اقوم بتخزين ( ساعتين فرق ) فى عمود اخر

 

ولكن عند الإنصراف AM فى اليوم التالى وهو حالة شاذة يحدث خلل هنا تحديد 

TimeSpan time_diff_final = end_time_span.Subtract(diff_hours);

حيث يظهر الفارق بالسالب وبالتالى لا استطيع حساب الوقت الجديد للإنصراف وان قمت بتبديل end_time_span مكان diff_hours سوف يظهر السالب لى فى حالة الانصراف PM والتى ليس بها مشكلة حاليا ؟؟؟

 

اعتقد ان الحل الذى طرحة الاخ الفاضل أبو أحمد المبرمج هو المناسب ولكنى للأسف لا اعرف كيف اقوم بعمله ؟

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 11 أغسطس 2013 في 10:12

#6

أخي الكريم ما هي البيئة التي تستخدمها لبرمجتك ؟

وهل بالإمكان إرفاق الجزء الذي تتحدث عنه لنجري التعديل عليه ونجرب عليه

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 11 أغسطس 2013 في 12:07

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#7
أبو أحمد المبرمج كتب:

أخي الكريم أن تبرمج ضمن أحد برامج أوفيس أم ضمن فيجوال بيسك 6 ؟

وهل بالإمكان إرفاق الجزء الذي تتحدث عنه لنجري التعديل عليه ونجرب عليه

 

اخى انا اعمل على منصة  web c#  2012

 

الكود الموجود ضمن حدث الزر كاملا هو وقد وضعت لك نبذه تشرح كل كود قبله لكى تتضح لك الصورة أكثر وفى إنتظار توضيحك وردك أخى الفاضل

           // ساعات العمل الواجبة سيتم إستدعائه من قاعدة البيانات وقمت بتثبيته هنا مؤقتا
            string must_work = "06:00";

            // الحصول على عدد ساعات العمل خلال اليوم سيتم إستدعاء وقت الحضور من قاعدة البيانات ووقت الإنصراف سيتم الحصول عليه من TEXTBOX خاص بعرض الوقت - وتم تثبيتهم للتجربة
            DateTime startTime = DateTime.Parse("11/08/2013 08:00 AM");
            DateTime endTime = DateTime.Parse("11/08/2013 05:00 PM");
            TimeSpan ts = endTime.Subtract(startTime);
            string work_day_hours = String.Format("{0:00}:{1:00}", ts.Hours, ts.Minutes);

            // إذا كان عدد ساعات العمل خلال اليوم ( فرق الحضور من الإنصراف )  أكبر من عدد ساعات العمل اليومية للموظف ( والمخزن بقاعدة البيانات وهو اول سطر فى الكود )
            if (Convert.ToDateTime(work_day_hours) > Convert.ToDateTime(must_work))
            {
                // حساب الفرق بين إجمالى عدد ساعات اليوم والساعات الفعلية للموظف ( هنا معرفة الفاق بين التوقيتين بالساعات )
                DateTime work_day_hours_dt = Convert.ToDateTime(work_day_hours);
                DateTime must_work_dt = Convert.ToDateTime(must_work);
                TimeSpan t = work_day_hours_dt.Subtract(must_work_dt);
                string diff = String.Format("{0:00}:{1:00}", t.Hours, t.Minutes);
                DateTime diff_hours_dt = Convert.ToDateTime(diff);
                TimeSpan diff_hours = new TimeSpan(diff_hours_dt.Hour, diff_hours_dt.Minute, diff_hours_dt.Second);

                // تحويل وقت الإنصراف للصيغة الصحيحة قبل الطرح ( تحويل وقت الإنصراف الى TIMESPAN لكى استطيع طرحه من عدد الساعات الذى تم الحصول عليه فى الخطوة السابقة )
                TimeSpan end_time_span = new TimeSpan(endTime.Hour, endTime.Minute, endTime.Second);

                // طرح عدد الساعات الزيادة من وقت الإنصراف
                TimeSpan time_diff_final = end_time_span.Subtract(diff_hours);

                             time_diff_final = diff_hours.Subtract(end_time_span);

                // وقت الإنصراف الجديد ( الناتج هنا هو وقت الإنصراف الجديد وهو ناتج طرح وقت الإنصراف الفعلى مطروح منه عدد الساعات الزيادة عن وقت العمل الفعلى للموظف )
                string diff_f = String.Format("{0:00}:{1:00}:{2:00}", time_diff_final.Hours, time_diff_final.Minutes, time_diff_final.Seconds);
                DateTime new_end_time = Convert.ToDateTime(diff_f);
                string xx = new_end_time.ToString("hh:mm tt");
#8

الحل بكل بساطة

                       // ساعات العمل الواجبة سيتم إستدعائه من قاعدة البيانات وقمت بتثبيته هنا مؤقتا
            var must_work = "06:00";
            var dh = Convert.ToDateTime(must_work);
            var dutyHours = new TimeSpan(dh.Hour,dh.Minute,dh.Second);

            // الحصول على عدد ساعات العمل خلال اليوم سيتم إستدعاء وقت الحضور من قاعدة البيانات ووقت الإنصراف سيتم الحصول عليه من TEXTBOX خاص بعرض الوقت - وتم تثبيتهم للتجربة
            var startTime = DateTime.Parse("11/08/2013 08:00 AM");
            var endTime = DateTime.Parse("11/08/2013 05:00 PM");
            var totalWork = endTime - startTime;  // 09:00:00
            var extraTime = totalWork - dutyHours;  // 03:00:00

            //مثال لو كان الانصراف في اليوم التالي
            startTime = DateTime.Parse("11/08/2013 08:00 AM");
            endTime = DateTime.Parse("11/09/2013 02:00 AM");
            totalWork = endTime - startTime;  // 18:00:00
            extraTime = totalWork - dutyHours;  // 12:00:00

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 11 أغسطس 2013 في 12:34

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#9
أبو أحمد المبرمج كتب:

 

الحل بكل بساطة

                       // ساعات العمل الواجبة سيتم إستدعائه من قاعدة البيانات وقمت بتثبيته هنا مؤقتا
            var must_work = "06:00";
            var dh = Convert.ToDateTime(must_work);
            var dutyHours = new TimeSpan(dh.Hour,dh.Minute,dh.Second);

            // الحصول على عدد ساعات العمل خلال اليوم سيتم إستدعاء وقت الحضور من قاعدة البيانات ووقت الإنصراف سيتم الحصول عليه من TEXTBOX خاص بعرض الوقت - وتم تثبيتهم للتجربة
            var startTime = DateTime.Parse("11/08/2013 08:00 AM");
            var endTime = DateTime.Parse("11/08/2013 05:00 PM");
            var totalWork = endTime - startTime;  // 09:00:00
            var extraTime = totalWork - dutyHours;  // 03:00:00

            //مثال لو كان الانصراف في اليوم التالي
            startTime = DateTime.Parse("11/08/2013 08:00 AM");
            endTime = DateTime.Parse("11/09/2013 02:00 AM");
            totalWork = endTime - startTime;  // 18:00:00
            extraTime = totalWork - dutyHours;  // 12:00:00

 

أشكرك أخى الفاضل الكود سليم ولكن تبقى به مشكلة واحدة فقط وهى فى حالة الإنصراف اليوم الثانى فقط حيث هنا تاريخ ووقت الإنصراف الفعلى هو

 endTime = DateTime.Parse("11/09/2013 02:00 AM");

والفارق مظبوط فعلا وهو 12 ساعة ولكن المشكلة فى تحديد وقت الإنصراف الجديد حيث انى اقوم بطرح الساعات الزيادة من وقت الإنصراف الفعلى واسجل الفرق على مرحلتين 

الأولى: تسجيل وقت الإنصراف الجديد مثلا اذا كان وقت الإنصراف 11/08/2013 05:00 PM وقمت بطرح 03:00 ساعات فيصبح وقت الإنصراف الجديد هو 11/08/2013 02:00 PM وهذا لا يوجد به مشاكل لأن الإنصراف هنا فى نفس اليوم 

 

لكن فى حالة الإنصراف فى اليوم التالى 12/08/2013 02:00 AM هنا اجمالى عدد الساعات = 18 ساعة وهو صحيح  وعدد ساعات العمل الزيادة = 12 ساعة ولكنه فى تلك الحالة عند طرح عدد ساعات العمل الكلية من وقت الانصراف

12:00 - 02:00 = 10:00 فتكون النتيجة خاطئة وهى ان وقت الإنصراف هنا اصبح 10:00 صباحا حيث انه هنا يفترض انه يتم طرح 12 ساعة من نفس التاريخ ولكن هنا التاريخ مختلف ؟؟

 

الثانية : تسجيل فرق الساعات لوحده

 

هذا هو الكود كاملا فى حالة الانصراف فى نفس اليوم وهو سليم ويعمل كما يجب

            // ساعات العمل الواجبة سيتم إستدعائه من قاعدة البيانات وقمت بتثبيته هنا مؤقتا
            DateTime dh = Convert.ToDateTime("06:00");
            TimeSpan dutyHours = new TimeSpan(dh.Hour, dh.Minute, dh.Second);

            // الحصول على عدد ساعات العمل خلال اليوم سيتم إستدعاء وقت الحضور من قاعدة البيانات ووقت الإنصراف سيتم الحصول عليه من TEXTBOX خاص بعرض الوقت - وتم تثبيتهم للتجربة
            DateTime startTime = DateTime.Parse("11/08/2013 08:00 AM");
            DateTime endTime = DateTime.Parse("11/08/2013 05:00 PM");
            //// إجمالى عدد ساعات عمل اليوم
            TimeSpan totalWork = endTime - startTime;  // 09:00:00
            //// عدد الساعات الزيادة
            TimeSpan extraTime = totalWork - dutyHours;  // 03:00:00

            // تحويل وقت الإنصراف للصيغة الصحيحة قبل الطرح
            TimeSpan end_time_span = new TimeSpan(endTime.Hour, endTime.Minute, endTime.Second);

            // طرح عدد الساعات الزيادة من وقت الإنصراف لتحديد ساعة الإنصراف بدون ساعات إضافية
            TimeSpan time_diff_final = extraTime.Subtract(end_time_span);

            // وقت الإنصراف الجديد
            string diff_f = String.Format("{0:00}:{1:00}:{2:00}", time_diff_final.Hours, time_diff_final.Minutes, time_diff_final.Seconds);
            DateTime new_end_time = Convert.ToDateTime(diff_f);
            string xx = new_end_time.ToString("hh:mm tt"); // 02:00 PM

وهذا هو الكود فى حالة الإنصراف فى اليوم التالى

            // ساعات العمل الواجبة سيتم إستدعائه من قاعدة البيانات وقمت بتثبيته هنا مؤقتا
            DateTime dh = Convert.ToDateTime("06:00");
            TimeSpan dutyHours = new TimeSpan(dh.Hour, dh.Minute, dh.Second);

            // الحصول على عدد ساعات العمل خلال اليوم سيتم إستدعاء وقت الحضور من قاعدة البيانات ووقت الإنصراف سيتم الحصول عليه من TEXTBOX خاص بعرض الوقت - وتم تثبيتهم للتجربة

            DateTime startTime = DateTime.Parse("11/08/2013 08:00 AM");
            DateTime endTime = DateTime.Parse("12/08/2013 02:00 AM");
            // إجمالى عدد ساعات عمل اليوم
            TimeSpan totalWork = endTime - startTime;  // 18:00:00
            // عدد الساعات الزيادة
            TimeSpan extraTime = totalWork - dutyHours;  // 12:00:00

            // تحويل وقت الإنصراف للصيغة الصحيحة قبل الطرح
            TimeSpan end_time_span = new TimeSpan(endTime.Hour, endTime.Minute, endTime.Second);

            // طرح عدد الساعات الزيادة من وقت الإنصراف لتحديد ساعة الإنصراف بدون ساعات إضافية
            TimeSpan time_diff_final = extraTime.Subtract(end_time_span);

            // وقت الإنصراف الجديد
            string diff_f = String.Format("{0:00}:{1:00}:{2:00}", time_diff_final.Hours, time_diff_final.Minutes, time_diff_final.Seconds);
            DateTime new_end_time = Convert.ToDateTime(diff_f);
            string xx = new_end_time.ToString("hh:mm tt"); // 02:00 PM

المشكلة تكون تحديدا فى هذا الجزء حيث انه من المفترض ان يكون وقت الإنصراف الصحيح فى تلك الحالة ( الانصراف اليوم التالى ) هو معاد الإنصراف الطبيعى بتاريخ اليوم السابق اى بمعنى ادق

 

طرح : 12/08/2013 02:00 AM من 12 ساعة ليصبح الوقت الصحيح 11/08/2013 02:00 PM وليس 11/08/2013 10:00 AM 

            // طرح عدد الساعات الزيادة من وقت الإنصراف لتحديد ساعة الإنصراف بدون ساعات إضافية
            TimeSpan time_diff_final = extraTime.Subtract(end_time_span);

أتمنى ألا أكون قد أطلت عليك وفى إنتظار الحل 

 

مع خالص شكرى

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 11 أغسطس 2013 في 13:32

#10

يعني أنت تقصد أن الساعات الإضافية يجب أن تخصم من الساعات الواجبة بدل أن تصرف كزيادة أجور

و على فرض أن الموظف داوم ست ساعات إضافية المفروض أن لا يداوم اليوم التالي ويأتي في اليوم الذي يليه

أليس كذلك أم أني أخطأت الفهم ؟

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

#11
أبو أحمد المبرمج كتب:

يعني أنت تقصد أن الساعات الإضافية يجب أن تخصم من الساعات الواجبة بدل أن تصرف كزيادة أجور

و على فرض أن الموظف داوم ست ساعات إضافية المفروض أن لا يداوم اليوم التالي ويأتي في اليوم الذي يليه

أليس كذلك أم أني أخطأت الفهم ؟

 

السلام عليكم

 

قمت بالإتصال بالعميل واخبرنى انه لا يريد تسجيل وقت الإنصراف مخصوم منه عدد الساعات بل يريد تسجيل وقت الإنصراف الفعللى للموظف لأسباب أمنيه وبالتالى يصبح الكود الذى أرسلته فى الأول يفى بالغرض تماما حيث اننى استخرج منه عدد الساعات الزيادة واستخرج منه عدد ساعات العمل خلال اليوم

                       // ساعات العمل الواجبة سيتم إستدعائه من قاعدة البيانات وقمت بتثبيته هنا مؤقتا
            var must_work = "06:00";
            var dh = Convert.ToDateTime(must_work);
            var dutyHours = new TimeSpan(dh.Hour,dh.Minute,dh.Second);

            // الحصول على عدد ساعات العمل خلال اليوم سيتم إستدعاء وقت الحضور من قاعدة البيانات ووقت الإنصراف سيتم الحصول عليه من TEXTBOX خاص بعرض الوقت - وتم تثبيتهم للتجربة
            var startTime = DateTime.Parse("11/08/2013 08:00 AM");
            var endTime = DateTime.Parse("11/08/2013 05:00 PM");
            var totalWork = endTime - startTime;  // 09:00:00
            var extraTime = totalWork - dutyHours;  // 03:00:00

            //مثال لو كان الانصراف في اليوم التالي
            startTime = DateTime.Parse("11/08/2013 08:00 AM");
            endTime = DateTime.Parse("11/09/2013 02:00 AM");
            totalWork = endTime - startTime;  // 18:00:00
            extraTime = totalWork - dutyHours;  // 12:00:00

أسف جدا لتعبك معى اخى الكريم وجعله الله تعالى فى ميزان حسناتك ......

 

لى سؤال أخير هل بما انه يهمه وقت وتاريخ الإنصراف لأسباب أمنيه هل يفضل تسجيل وقت الحضور والإنصراف فى الصيغة التالية " 11/09/2013 02:00 AM " ؟ وجعل نوع الحق فى قاعدة البيانات SQL من نوع DateTime

#12

الحمد لله

 

بالنسبة للتاريخ ممثل داخليا برقم موجود في الخاصية Ticks

وهو يمثل حسب ما أظن 10 نانو ثانية

حيث من أجل الوقت الافتراضي والابتدائي 01/01/0001 12:00:00 AM  تكون قيمة ال Ticks تساوي 0

و كل 10000000 تيك تعادل ثانية واحدة

أي مع كل ثانية تزداد قيمة التيك 10 مليون

ولو نظرت لعدد التيك للوقت الحالي لوجدته رقم مهول    635118470076624150
 

هذا الرقم بإمكانك تشفيره من خلال ضرب وطرح ومن ثم تخزينه

وعند الاستعادة تعيد فك تشفيره

ولكن اسأل الزبون قد لا يحتاج التشفير حينها تكتفي بحفظ الرقم كما هو أو الصيغة المعتادة

ولكن لا أظن أنه يقصد بالأسباب الأمنية أنه ضد الكشف ولكن لحصر المسؤوليات في حال حصل حادث أو شيء للتعرف على من كان موجود ضمن هذا الوقت

أي لأسباب متعلقة بالتحقيق في حالة الحاجة وليس ضد المخترقين

تم تعديل هذه المشاركة بواسطة أبو أحمد المبرمج في 11 أغسطس 2013 في 18:44

ما أقبـح المعصية ، تذهب لذتها ويبقى إثمها ... ومأ أحسن الطاعة ، تذهب مشقتها ويبقى ثوابها

كل نعيم دون الجنة غرور ... وكـل شقـاء دون النـار سرور

الدورة التطبيقية لتعليم التصميم بالإليستريتور

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…