المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كــــــــيف يمكن استخدام (الجمع) او (الطرح) مع التاريخ ( date)


ياسرهتهت
18-04-2017, 01:57 AM
بسم الله الرحمن الرحيم
مع هذان التريخان

stn_dat = "02/20/2017";
sst_dat = System.GetDate(DATE_FMT_US);

كيف يمكن حساب الفرق بينهما
مثلا هكذا b = stn_dat - sst_dat

ليعطيني عدد الايام بينهما ؟؟ طبعا بالزائد او الناقص

موفقين بإذن الله ... لكم مني أجمل تحية .

:abc_152::abc_152:

ياسرهتهت
19-04-2017, 01:04 AM
بسم الله الرحمن الرحيم
ساضع السؤال بشكل تاني
03/25/2017 + عشرين يوم = 04/15/2017
ما هو الكود الذي يقوم بهذة العملية؟؟

ثامر أبو بلقيس
19-04-2017, 01:08 AM
قبل تنصيب الاوتوبلاي و محاولة التفكير معك كنت سأشير لك قبل
تعديلك في السؤال الى الاطلاع على آخر مشاركة هنا في الصفحة الأولى
دون الانتقاص مما قدم قبلها أو ما سيقدم بعدها
http://www.abc4web.net/vb/showthread.php?t=31750

ثامر أبو بلقيس
19-04-2017, 01:19 AM
بسم الله الرحمن الرحيم
ساضع السؤال بشكل تاني
03/25/2017 + عشرين يوم = 04/15/2017
ما هو الكود الذي يقوم بهذة العملية؟؟


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

كتبت ذات مرة

http://www.abc4web.net/vb/showthread.php?t=33250


و سأضع حل لتساؤلك وفق هذه الفكرة

ثامر أبو بلقيس
19-04-2017, 01:26 AM
03/25/2017 + عشرين يوم = 04/15/2017

الناتج 14 أفريل 2017 و ليس 15 أفريل 2017

كود وفق الدرس المفدم:
tamer1 = os.time({year=2017, month=3, day=25})
b1 = Math.Ceil((tamer1 / 86400) + 2440587.5)
K = ((b1+20) - 2440587.5) * 86400
data = os.date("%Y-%m-%d",K)
Dialog.Message("Notice", data);

التعليل : حولت التاريخ إلى قيمة عددية أضفت لها 20 في التعبير b1+20
وكأنها عملية حسابية عادية تستطيع التعامل معها طرحا أو جمعا .....
ثم أرجعت القيمة الناتجة إلى تاريخ

موفق :abc_138:

ياسرهتهت
19-04-2017, 02:04 AM
عندك في الموقع درس يوضح طريقة التعامل مع هكذا موقف بطريقة في تقديري الشخصي و بتوفيق من الله

كتبت ذات مرة

http://www.abc4web.net/vb/showthread.php?t=33250


و سأضع حل لتساؤلك وفق هذه الفكرة
-----------------------------------------------------
بسم الله الرحمن الرحيم
اشكرك استاذي الفاضل
الحقيقة انني اطلعت على هذه الموضيع وغيرها في المنتدي
ولكن المشكله ان كل الموضيع تتعامل مع التاريخ من خلال
Plugin الــ Calendar او الصيغة os.time({year=2017, month=3, day=25})

وانا اريد التعامل مع التاريخ وهو بهذه الصورة 03/25/2017


:abc_138::abc_138:

ياسرهتهت
19-04-2017, 02:13 AM
03/25/2017 + عشرين يوم = 04/15/2017

الناتج 14 أفريل 2017 و ليس 15 أفريل 2017

كود وفق الدرس المفدم:
tamer1 = os.time({year=2017, month=3, day=25})
b1 = Math.Ceil((tamer1 / 86400) + 2440587.5)
K = ((b1+20) - 2440587.5) * 86400
data = os.date("%Y-%m-%d",K)
Dialog.Message("Notice", data);

التعليل : حولت التاريخ إلى قيمة عددية أضفت لها 20 في التعبير b1+20
وكأنها عملية حسابية عادية تستطيع التعامل معها طرحا أو جمعا .....
ثم أرجعت القيمة الناتجة إلى تاريخ

موفق :abc_138:

----------------------------------------------
بسم الله الرحمن الرحيم
شكرا جزيلا استاذي الفاضل
:abc_138::abc_138:

اريد ان اعرف كيف يمكن ان احول التاريخ المكتوب بهذا الشكل ( 03/25/2017)
ملاحظة (والذي يصل للبرنامج من خلال ملف نصي مخزن فيه التاريخ)

الي هذة الصورة tamer1 = os.time({year=2017, month=3, day=25})

حتي استطيع اجراء هذه العملية علية ؟؟؟

:abc_138:

ثامر أبو بلقيس
19-04-2017, 02:21 AM
استغل مثلا الموضوع هذا لتطويع الكتابة لما تريد
http://www.abc4web.net/vb/showthread.php?t=35249

سأكتب لك مثالا

ثامر أبو بلقيس
19-04-2017, 02:24 AM
n ="03/25/2017"
tamer1 = os.time({year= string.match(n , "..../(%d+)"), month= string.match(n , "(%d+)/"), day=string.match(n , "/(%d+)")})
b1 = Math.Ceil((tamer1 / 86400) + 2440587.5)
K = ((b1+20) - 2440587.5) * 86400
data = os.date("%Y-%m-%d",K)
Dialog.Message("Notice", data);


موفق

ياسرهتهت
19-04-2017, 03:14 AM
n ="03/25/2017"
tamer1 = os.time({year= string.match(n , "..../(%d+)"), month= string.match(n , "(%d+)/"), day=string.match(n , "/(%d+)")})
b1 = Math.Ceil((tamer1 / 86400) + 2440587.5)
K = ((b1+20) - 2440587.5) * 86400
data = os.date("%Y-%m-%d",K)
Dialog.Message("Notice", data);


موفق

----------------------------------
بسم الله الرحمن الرحيم
شكر لك وبارك الله فيك استاذي الكريم

:abc_138::abc_138::abc_138:

قبل ان اشاهد هذا الكود الاحتراف
:abc_102:كنت احاول بطرقي البدائية :abc_102:

Date = "03/25/2017"
h_t1 = String.Find(Date, "/", 1, true);
yom_sna = String.Mid(Date, h_t1+1, -1);
sna = String.Left(Date, h_t1-1);
Date2 = yom_sna
h_t2 = String.Find(Date2, "/", 1, true);
shar = String.Mid(Date2, h_t2+1, -1);
yom = String.Left(Date2, h_t2-1);
day_d = String.ToNumber(yom);
month_m = String.ToNumber(sna);
year_y = String.ToNumber(shar);

----------------------------------------
tamer1 = os.time({year=year_y, month=month_m, day=day_d})
b1 = Math.Ceil((tamer1 / 86400) + 2440587.5)
K = ((b1+20) - 2440587.5) * 86400
data = os.date("%Y/%m/%d",K)
Dialog.Message("Notice", data);


موفق بإذن الله ... لك مني أجمل تحية .

ثامر أبو بلقيس
19-04-2017, 02:59 PM
ولماذا اساسا دالة البحث
Date = "03/25/2017"
----------------------------------------
tamer1 = os.time({year=String.Mid(Date,7, 4), month=String.Mid(Date,1, 2), day=String.Mid(Date,4, 2)})
b1 = Math.Ceil((tamer1 / 86400) + 2440587.5)
K = ((b1+20) - 2440587.5) * 86400
data = os.date("%Y/%m/%d",K)
Dialog.Message("Notice", data);

ياسرهتهت
19-04-2017, 05:39 PM
:abc_152::abc_152::abc_152:
:abc_138::abc_138: