بسم الله الرحمن الرحيم
كيفية حساب الزكاة - خاص بالمبرمجين (فقه برمجية)
إعداد وشرح : شحادة بشير
السلام عليكم ورحمة الله وبركاته وأفضل الصلاة وأتم التسليم على سيدنا محمد وعلى آله وصحبه أجمعين ، وبعد :
{وَأَقِيمُوا الصَّلَاةَ وَآتُوا الزَّكَاةَ وَمَا تُقَدِّمُوا لِأَنْفُسِكُمْ مِنْ خَيْرٍ تَجِدُوهُ عِنْدَ اللَّهِ إِنَّ اللَّهَ بِمَا تَعْمَلُونَ بَصِيرٌ} [البقرة : 110]
أقدم لكم اليوم درساً فريداً أشرح من خلاله فقهياً وبرمجياً كيفية صياغة خوارزميات حساب الزكاة للأموال التي تجب فيها الزكاة في الشريعة الإسلامية ، وقد أطلقت على هذه السلسلة مصطلح (فقه برمجية) ربطاً مني للفقه بالبرمجة وإن شاء الله يكون هذا نافذةً لدروسٍ أخرى سواءً لي أو لغيري من الإخوة المبرمجين في المجال ذاته.
بداية هنالك نقاطٌ لا بد من أخذها بعين الاعتبار ، وهي :
1- يجب أن يكون لديك إلمامٌ بسيط بإحدى لغات البرمجة ، علماً أنني سأشرح الخوارزميات بلغة الفيجوال بيسك.
2- خلافات الفقهاء سنحاول صياغتها برمجياً بطريقةٍ علميةٍ ذكيةٍ بحيث يفهم البرنامج النقاط التي يتفق فيها الفقهاء والنقاط التي يختلفون فيها ، فيجمع آراء المتفقين ويفرّق بين آراء المختلفين كما سنشاهد إن شاء الله تعالى في زكاة النقدين وزكاة حساب المال وغيرهما.
3- سنستخدم إن شاء الله مصطلحاتٍ معاصرةٍ يفهمها الفقيه والمبرمج وبالتالي يسهل على الاثنين فهم الخوارزميات والآراء.
4- النِّصاب : هو مقدار المال الذي لا تجب الزكاة في أقلٍ منه ، وهو يختلف باختلاف أجناس الأموال الزكوية كما سيمر معنا إن شاء الله.
الأموال التي تجب فيها الزكاة :
زكاة بهيمة الأنعام : الإبل البقر الغنم
زكاة النقدين (الذهب والفضة) : زكاة الذهب زكاة الفضة
زكاة الأموال وعُرُوض التجارة : حسب الذهب حسب الفضة حسب أقل النصابين
زكاة الزروع والثمار : زكاة العسل
زكاة الكنز والرِّكَاز
أولاً : زكاة بهيمة الأنعام :
بهيمة الأنعام هي : الإبل والبقر والغنم. والأنعام التي تجب فيها الزكاة هي :
الأول الإبل :
نصاب الإبل : اختلف العلماء في نصاب الإبل على رأيين :
# مذهب الجمهور (الشافيعة والحنابلة والمالكية) :
من 1 - 4 لا شيء فيها.
If Trim(TxtAnimal.Text) < 5 Then
LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الإبل هو : 5 رؤوس"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الإبل في الشريعة الإسلامية هو 5 رؤوس ، وعدد رؤوس إبلك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
Exit Sub
End If
TxtAnimal.Text ترمز للمربع الذي وضعت فيه عدد رؤوس الإبل التي تمتلكها.
LblResultAnimal.Caption يرمز لمربع النتيجة التي ستخرج.
TxtExplicationlAnimal.Text يرمز لمربع شرح النتيجة.
من 5 - 9 فيها شاةٌ واحدةٌ.
If TxtAnimal.Text < 10 And TxtAnimal.Text > 4 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاة واحدة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 5 إلى 9 فتجب فيها شاة واحدة فقط."
End If
من 10 - 14 فيها شاتان.
نفس الكود السابق مع تعديل الأرقام فقط.
من 15 - 19 فيها 3 شياهٍ.
نفس الكود السابق مع تعديل الأرقام فقط.
من 20 - 24 فيها 4 شياهٍ.
نفس الكود السابق مع تعديل الأرقام فقط.
من 25 - 35 فيها بنتُ مخاضٍ (أي لها سنةٌ ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً).
نفس الكود السابق مع تعديل الأرقام فقط.
من 36 - 45 فيها بنتُ لبونٍ (أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً).
نفس الكود السابق مع تعديل الأرقام فقط.
من 46 - 60 فيها حِقّةٌ (أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل).
نفس الكود السابق مع تعديل الأرقام فقط.
من 61 - 75 فيها جَذَعةٌ (أي أتمت أربع سنواتٍ ودخلت في الخامسة).
نفس الكود السابق مع تعديل الأرقام فقط.
من 76 - 90 فيها بنتا لبون.
نفس الكود السابق مع تعديل الأرقام فقط.
من 91 - 120 فيها حِقّتان.
نفس الكود السابق مع تعديل الأرقام فقط.
إذن إلى هنا الأمر سهلٌ برمجياً كما شاهدنا ، ولكن قال الجمهور : إذا زاد الرقم عن ذلك ففي كل 40 بنت لبونٍ ، وفي كل 50 حِقّةٌ ، وهنا بيت القصيد :
يجب أن نأخذ الرقم وهذا الرقم يجب أن نعرف كم 40 يوجد فيه أو كم 50 يوجد فيه أو كم 50 وكم 40 يوجد فيه ؟! إذن هنالك عدة احتمالات.
وهنا يجب أن نصيغ خوارزمية تقوم بعمليتين ، هما :
1- جعل الرقم قابلاً للقسمة على عشرة ؛ لأن العلماء تسامحوا في الوقص ، والوقص : هو الرقم الموجود بين فريضتين ؛ مثلاً : الرقم 235 موجود بين 230 و 240 فيأخذ حكم الرقم 230 ، وبما أن الجمهور قالوا : إذا زاد الرقم عن ذلك ففي كل 40 بنت لبونٍ ، وفي كل 50 حِقّةٌ فمنطقياً يجب أن يكون قابلاً للقسمة على عشرة.
'تعريف متغير لوضع عدد رؤوس الإبل فيه بعد جعلها قابلة للقسمة على عشرة
Dim LeftOver As String
LblResultAnimal.Caption = ""
LeftOver = (TxtAnimal.Text Mod 10)
LeftOver = TxtAnimal.Text - LeftOver
2- هذه الخوارزمية يجب أن تكون فيها احتمالات ، وهي :
- إذا كان عدد الرؤوس يقبل القسمة على 40 دون باقٍ أو على 50 دون باقٍ فنحن مخيرون بما نخرجه ؛ مثلاً : شخصٌ عنده 200 رأس من الإبل ، كما نلاحظ فإن العدد 200 يقبل القسمة على 40 ويقبل كذلك القسمة على 50 ، فنقول له : عليك أن تخرج 5 بنات لبون أو 4 حِقاق.
If LeftOver Mod 40 = 0 And LeftOver Mod 50 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & LeftOver / 40 & " بنت لبون" & " أو " & LeftOver / 50 & " حِقّة"
TxtExplicationlAnimal.Text = "تجري مذاهب الجمهور في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة ، وعدد رؤوس البقر عندك تنطبق عليه الحالتان." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
End If
- إذا كان عدد الرؤوس يقبل القسمة على 40 فقط دون باقٍ ، فالخارج يجب أن يكون من بنات لبون ؛ مثلاً : شخصٌ عنده 160 رأساً من الإبل ، كما نلاحظ فإن العدد 160 يقبل القسمة على 40 ولا يقبل القسمة على 50 ، في هذه الحالة نقول له : عليك أن تخرج 4 بنات لبون.
If LeftOver Mod 40 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & Int(LeftOver / 40) & " بنت لبون"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
End If
- إذا كان عدد الرؤوس يقبل القسمة على 50 فقط دون باقٍ ، فالخارج يجب أن يكون من حِقاق ؛ مثلاً : شخصٌ عنده 150 رأساً من الإبل ، كما نلاحظ فإن العدد 150 يقبل القسمة على 50 ولا يقبل القسمة على 40 ، في هذه الحالة نقول له : عليك أن تخرج 3 حِقاق.
If LeftOver Mod 50 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & Int(LeftOver / 50) & " حِقّة"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 50 منها يتوجب عليك إخراج حِقّة." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
End If
- إذا كان عدد الرؤوس لا يقبل القسمة لا على 40 ولا على 50 ولكن مجموعه يحتوي على أربعين واحدة وخمسين واحدة أو على أربعين واحدة وعدة خمسينات أو بالعكس أي يحتوي على خمسين واحدة وعدة أربعينات ، أو يحوي عدة أربعينات وعدة خمسينات ، وهنا يجب أن نقوم ببرمجة حلقة نضع فيها متغير تزداد قيمته في كل دورة. ولنأخذ مثالاً افتراضياً :
شخصٌ عنده عدد رؤوس من الإبل تبلغ 270 رأساً ، كم زكاة إبله ؟
الجواب هو : 3 بنات لبونٍ و 3 حِقاقٍ ، ولكن كيف عرفنا ؟ الجواب : عن طريق حلقةٍ برمجيةٍ تقوم بالآتي :
'متغير يمثل عدد مرات دوران الحلقة
Dim s As Integer
'قيمة المتغير البدائية صفر
s = 0
Do
'في كل دورة سنضيف للمتغير واحداً
s = s 1
'نأخذ عدد الرؤوس ثم نطرح منه 40 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
'الناتج نقسمه على 50 فإن كان الباقي صفراً نعطيه النتيجة وإلا ننزل للشرط الثاني
If (LeftOver - (40 * s)) Mod 50 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & s & " بنت لبون" & " و " & Int((LeftOver - (40 * s)) / 50) & " حِقّة"
Exit Do
'الشرط الثاني : نأخذ عدد الرؤوس ثم نطرح منه 50 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
'الناتج نقسمه على 40 فإن كان الباقي صفراً نعطيه النتيجة وإلا سندور دورة ثانية
'وفي الدورة الثانية ستصبح قيمة المتغير اثنان وهكذا
ElseIf (LeftOver - (50 * s)) Mod 40 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & Int((LeftOver - (50 * s)) / 40) & " بنت لبون" & " و " & s & " حِقّة"
Exit Do
End If
Loop Until LblResultAnimal <> ""
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
وهذا هو الكود النهائي والكامل لزكاة الإبل حسب مذهب الجمهور :
'زكاة الإبل عند الجمهور
Dim LeftOver As String
LblResultAnimal.Caption = ""
LeftOver = (TxtAnimal.Text Mod 10)
LeftOver = TxtAnimal.Text - LeftOver
'إِذَا زَادَتْ عَلَى عِشْرِينَ وَمِائَةٍ فَفِي كُل أَرْبَعِينَ بِنْتُ لَبُونٍ ، وَفِي كُل خَمْسِينَ حِقَّةٌ
'بنت مخاض: لها سنة ودخلت في الثانية
'بنت لبون: أتمت سنتين ودخلت في الثالثة
'حِقّة: أتمت ثلاث سنين ودخلت في الرابعة
'جَذَعة: أتمت أربع سنين ودخلت في الخامسة
If Trim(TxtAnimal.Text) < 5 Then
LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الإبل هو : 5 رؤوس"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الإبل في الشريعة الإسلامية هو 5 رؤوس ، وعدد رؤوس إبلك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
Exit Sub
End If
If TxtAnimal.Text < 10 And TxtAnimal.Text > 4 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاة واحدة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 5 إلى 9 فتجب فيها شاة واحدة فقط."
ElseIf TxtAnimal.Text >= 10 And TxtAnimal.Text < 15 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاتين"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 10 إلى 14 فتجب فيها شاتان فقط."
ElseIf TxtAnimal.Text >= 15 And TxtAnimal.Text < 20 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "ثلاث شياه"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 15 إلى 19 فتجب فيها ثلاث شياهٍ فقط."
ElseIf TxtAnimal.Text >= 20 And TxtAnimal.Text < 25 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "أربع شياه"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 20 إلى 24 فتجب فيها أربع شياهٍ فقط."
ElseIf TxtAnimal.Text >= 25 And TxtAnimal.Text < 36 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنت مخاض"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 25 إلى 35 فتجب فيها بنت مخاض." & vbNewLine & _
"# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
ElseIf TxtAnimal.Text >= 36 And TxtAnimal.Text < 46 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنت لبون "
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 36 إلى 45 فتجب فيها بنت لبون." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text >= 46 And TxtAnimal.Text < 61 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقّة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 46 إلى 60 فتجب فيها حِقّة." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 61 And TxtAnimal.Text < 76 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "جَذَعة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 61 إلى 75 فتجب فيها جَذَعة." & vbNewLine & _
"# جَذَعة : أي أتمت أربع سنواتٍ ودخلت في الخامسة."
ElseIf TxtAnimal.Text >= 76 And TxtAnimal.Text < 91 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنتا لبون"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 76 إلى 90 فتجب فيها بنتا لبون." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text >= 91 And TxtAnimal.Text < 121 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 91 إلى 120 فتجب فيها حِقتان." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf LeftOver Mod 40 = 0 And LeftOver Mod 50 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & LeftOver / 40 & " بنت لبون" & " أو " & LeftOver / 50 & " حِقّة"
TxtExplicationlAnimal.Text = "تجري مذاهب الجمهور في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة ، وعدد رؤوس البقر عندك تنطبق عليه الحالتان." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf LeftOver Mod 40 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & Int(LeftOver / 40) & " بنت لبون"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf LeftOver Mod 50 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & Int(LeftOver / 50) & " حِقّة"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 50 منها يتوجب عليك إخراج حِقّة." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
Else
'متغير يمثل عدد مرات دوران الحلقة
Dim s As Integer
'قيمة المتغير البدائية صفر
s = 0
Do
'في كل دورة سنضيف للمتغير واحداً
s = s 1
'نأخذ عدد الرؤوس ثم نطرح منه 40 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
'الناتج نقسمه على 50 فإن كان الباقي صفراً نعطيه النتيجة وإلا ننزل للشرط الثاني
If (LeftOver - (40 * s)) Mod 50 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & s & " بنت لبون" & " و " & Int((LeftOver - (40 * s)) / 50) & " حِقّة"
Exit Do
'الشرط الثاني : نأخذ عدد الرؤوس ثم نطرح منه 50 مضروبة بالمتغير الذي ستكون قيمته واحداً أول دورة
'الناتج نقسمه على 40 فإن كان الباقي صفراً نعطيه النتيجة وإلا سندور دورة ثانية
'وفي الدورة الثانية ستصبح قيمة المتغير اثنان وهكذا
ElseIf (LeftOver - (50 * s)) Mod 40 = 0 Then
LblResultAnimal = "يتوجب عليك إخراج : " & Int((LeftOver - (50 * s)) / 40) & " بنت لبون" & " و " & s & " حِقّة"
Exit Do
End If
Loop Until LblResultAnimal <> ""
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 40 منها يتوجب عليك إخراج بنت لبون ، وفي كل 50 منها يتوجب عليك إخراج حِقّة." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
End If
# مذهب الحنفية :
الحنفية اتفقوا مع الجمهور في النصاب من أوله إلى 120 رأساً ، ولكنهم اختلفوا معهم فيما بعد 120 رأساً.
وقد رأينا سابقاً مذهب الجمهور بأنه إذا زاد الرقم عن ذلك ففي كل 40 بنت لبونٍ ، وفي كل 50 حِقّةٌ.
أما الحنفية فذهبوا إلى أن الفريضة تستأنف بعد 120 ، ففي كل خمسٍ مما زاد عليها شاةٌ بالإضافة إلى الحِقّتين ، فإن بلغ الزّائد ما فيه بنتُ مخاضٍ أو بنتُ لبونٍ وجبت إلى أن يبلغ الزائد ما فيه حِقّةٌ فتجب.
قد يقول قائل : هذا الكلام الفقهي غير واضحٍ وخاصةً بالنسبة للمبرمج !!.. هذا صحيحٌ ، لذا دعوني أشرح لكم قول الحنفية من الناحية العلمية والبرمجية :
الحنفية قصدوا بأن عدد رؤوس الإبل إذا كان أكثر من 120 فإننا نأخذ عن كل خمسين حِقّةٌ ، ثم ننظر إلى الباقي إن كان هنالك باقٍ :
- فإذا كان أقل من 25 فتجب في كل 5 رؤوس شاة وفي 10 رؤوس شاتان وفي 15 رأساً ثلاث شياهٍ وفي 20 رأساً أربع شياهٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك.
- وإذا كان أكبر من 24 وأصغر من 36 فتجب فيه بنت مخاضٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك.
- وإذا كان أكبر من 35 وأصغر من 46 فتجب فيه بنت لبونٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك.
- وإذا كان أكبر من 45 وأصغر من 50 فتجب فيه حِقّة تضاف للحِقاق المتوجبة عليك.
وإليك بعض الأمثلة حسب رأي الحنفية فيما زاد على 120 رأساً :
^ شخصٌ عنده 220 رأساً من الإبل : زكاته هي : أربع حِقاقٍ وأربع شياهٍ. (220 / 50 = 4 حِقاقٍ. الباقي من القسمة 20 فيها أربعة شياهٍ).
^ شخصٌ عنده 325 رأساً من الإبل : زكاته هي : ست حِقاقٍ وبنت مخاضٍ. (325 / 50 = 6 حِقاقٍ. الباقي من القسمة 25 فيه بنت مخاضٍ.)
^ شخصٌ عنده 295 رأساً من الإبل : زكاته هي : خمس حِقاقٍ وبنت لبونٍ. (295 / 50 = 5 حِقاقٍ. الباقي من القسمة 45 فيه بنت لبونٍ).
^ شخصٌ عنده 296 رأساً من الإبل : زكاته هي : ست حِقاقٍ. (296 / 50 = 5 حِقاقٍ. الباقي من القسمة 46 وفيه حِقّةٌ. أصبح المجموع ست حِقاقٍ).
^ شخصٌ عنده 500 رأسٍ من الإبل : زكاته هي : عشر حِقاقٍ. (500 / 50 = 10 حِقاقٍ. ولا يتوجب عليه شيءٌ آخر لأن الباقي من القسمة صفر).
الأمر أظنه أصبح سهلاً من الناحية البرمجيّة ، وإليك الكود النهائي لزكاة الإبل حسب مذهب الحنفية :
'زكاة الإبل عند الحنفية
LblResultAnimal.Caption = ""
If Trim(TxtAnimal.Text) < 5 Then
LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الإبل هو : 5 رؤوس"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الإبل في الشريعة الإسلامية هو 5 رؤوس ، وعدد رؤوس إبلك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
Exit Sub
End If
If TxtAnimal.Text < 10 And TxtAnimal.Text > 4 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاة واحدة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 5 إلى 9 فتجب فيها شاة واحدة فقط."
ElseIf TxtAnimal.Text >= 10 And TxtAnimal.Text < 15 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "شاتان"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 10 إلى 14 فتجب فيها شاتان فقط."
ElseIf TxtAnimal.Text >= 15 And TxtAnimal.Text < 20 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "ثلاث شياه"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 15 إلى 19 فتجب فيها ثلاث شياهٍ فقط."
ElseIf TxtAnimal.Text >= 20 And TxtAnimal.Text < 25 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "أربع شياه"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 20 إلى 24 فتجب فيها أربع شياهٍ فقط."
ElseIf TxtAnimal.Text >= 25 And TxtAnimal.Text < 36 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنت مخاض"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 25 إلى 35 فتجب فيها بنت مخاض." & vbNewLine & _
"# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
ElseIf TxtAnimal.Text >= 36 And TxtAnimal.Text < 46 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنت لبون"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 36 إلى 45 فتجب فيها بنت لبون." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text >= 46 And TxtAnimal.Text < 61 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقّة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 46 إلى 60 فتجب فيها حِقّة." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 61 And TxtAnimal.Text < 76 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "جَذَعة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 61 إلى 75 فتجب فيها جَذَعة." & vbNewLine & _
"# جَذَعة : أي أتمت أربع سنواتٍ ودخلت في الخامسة."
ElseIf TxtAnimal.Text >= 76 And TxtAnimal.Text < 91 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "بنتا لبون"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الإبل إذا كانت ما بين 76 إلى 90 فتجب فيها بنتا لبون." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text >= 91 And TxtAnimal.Text < 125 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 91 إلى 124 فتجب فيها حِقتان." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 125 And TxtAnimal.Text < 130 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان وشاة"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 125 إلى 129 فتجب فيها حِقتان وشاة." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 130 And TxtAnimal.Text < 135 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان وشاتان"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 130 إلى 134 فتجب فيها حِقتان وشاتان." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 135 And TxtAnimal.Text < 140 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان و3 شياه"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 135 إلى 139 فتجب فيها حِقتان و3 شياه." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 140 And TxtAnimal.Text < 145 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان و4 شياه"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 140 إلى 144 فتجب فيها حِقتان و4 شياه." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text >= 145 And TxtAnimal.Text < 150 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "حِقتان وبنت مخاض"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 145 إلى 149 فتجب فيها حِقتان وبنت مخاض." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." & vbNewLine & _
"# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
ElseIf TxtAnimal.Text >= 150 And TxtAnimal.Text < 155 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & "ثلاث حِقاق"
TxtExplicationlAnimal.Text = "ذهب الحنفية إلى أن رؤوس الإبل إذا كانت ما بين 150 إلى 154 فتجب فيها ثلاث حِقاق." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
Else
LblResultAnimal.Caption = Int(TxtAnimal.Text / 50) & " حِقّة"
If TxtAnimal.Text Mod 50 < 25 And TxtAnimal.Text Mod 50 > 4 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LblResultAnimal.Caption & " و " & Int((TxtAnimal.Text Mod 50) / 5) & " شاة"
TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أقل من 25 فتجب في كل 5 رؤوس شاة وفي 10 رؤوس شاتان وفي 15 رأساً ثلاث شياهٍ وفي 20 رأساً أربع شياهٍ ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
ElseIf TxtAnimal.Text Mod 50 >= 25 And TxtAnimal.Text Mod 50 < 36 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LblResultAnimal.Caption & " و " & "بنت مخاض"
TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أكبر من 24 وأصغر من 36 فتجب فيه بنت مخاض ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." & vbNewLine & _
"# بنت مخاض : أي لها سنة ودخلت في الثانية ، سميت بذلك لأن أمها غالباً تكون مَخاضاً أي حاملاً."
ElseIf TxtAnimal.Text Mod 50 >= 36 And TxtAnimal.Text Mod 50 < 46 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LblResultAnimal.Caption & " و " & "بنت لبون"
TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أكبر من 35 وأصغر من 46 فتجب فيه بنت لبون ، طبعاً هذا بالإضافة للحِقاق المتوجبة عليك." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل." & vbNewLine & _
"# بنت لبون : أي أتمت سنتين ودخلت في الثالثة ، سميت بذلك لأن أمها آن لها أن تلد فتصير لبوناً أي ذات لبنٍ لأخرى غالباً."
ElseIf TxtAnimal.Text Mod 50 >= 46 And TxtAnimal.Text Mod 50 < 50 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(TxtAnimal.Text / 50) 1 & " حِقّة"
TxtExplicationlAnimal.Text = "عند الحنفية تستأنف الفريضة في الإبل فبالإضافة للحِقّة التي تجب في كل 50 رأساً من الإبل ، ننظر للباقي فإذا كان أكبر من 45 وأصغر من 50 فتجب فيه حِقّة تضاف للحِقاق المتوجبة عليك." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
Else
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(TxtAnimal.Text / 50) & " حِقّة"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة الإبل حسب حالتك هذه : في كل 50 منها يتوجب عليك إخراج حِقّة." & vbNewLine & _
"# حِقّة : أي أتمت ثلاث سنواتٍ ودخلت في الرابعة ، سميت بذلك لأنها استحقت أن تُركَب ويُحمَل عليها ويطرقها الفحل."
End If
End If
الثاني البقر :
نصاب البقر : نصابها محلُ اتفاقٍ بين العلماء ، وإذا فهمت نصاب زكاة الإبل حسب رأي الجمهور من الناحية البرمجية فسيسهل عليك فهم نصاب زكاة البقر ، وإليك التفصيل :
من 1 - 29 لا شيء فيها.
من 30 - 39 فيها تبيعٌ أو تبيعةٌ (عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة).
من 40 - 59 فيها مسنّةٌ (عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة).
من 60 - 69 فيها تبيعان.
من 70 - 79 فيها تبيعٌ ومسنّةٌ.
من 80 - 89 فيها مسنّتان.
من 90 - 99 فيها 3 أتبعةٍ.
من 100 - 109 فيها تبيعان ومسنّةٌ.
من 110 - 119 فيها تبيعٌ ومسنّتان.
من 120 - 129 فيها 4 أتبعةٍ أو 3 مسنّاتٍ.
وهكذا في كل ثلاثين تبيعٌ أو تبيعةٌ ، وفي كل أربعين مسنّةٌ.
كما تشاهد فكرة الكود لا تختلف أبداً عن نصاب زكاة الإبل عند الجمهور اللهم إلا التعديل في الأرقام ، وإليك كود حساب زكاة البقر :
'زكاة البقر
LblResultAnimal.Caption = ""
If Trim(TxtAnimal.Text) < 30 Then
LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة البقر هو : 30 بقرة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة البقر في الشريعة الإسلامية هو 30 بقرة وعدد رؤوس البقر عندك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
Exit Sub
End If
Dim LeftOver As String
LeftOver = (TxtAnimal.Text Mod 10)
LeftOver = TxtAnimal.Text - LeftOver
If LeftOver Mod 30 = 0 And LeftOver Mod 40 = 0 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & LeftOver / 30 & " تبيع" & " أو " & LeftOver / 40 & " مسنة"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 30 بقرة يتوجب عليك إخراج تبيع أو تبيعة ، وفي كل 40 بقرة يتوجب عليك إخراج مُسِنَّة ، وعدد رؤوس البقر عندك تنطبق عليه الحالتان." & vbNewLine & _
"# والتبيع أو التبيعة : عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة." & vbNewLine & _
"# والمسنة : عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة."
ElseIf LeftOver Mod 30 = 0 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(LeftOver / 30) & " تبيع"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 30 بقرة يتوجب عليك إخراج تبيع أو تبيعة." & vbNewLine & _
"# والتبيع أو التبيعة : عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة."
ElseIf LeftOver Mod 40 = 0 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(LeftOver / 40) & " مسنة"
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 40 بقرة يتوجب عليك إخراج مُسِنَّة." & vbNewLine & _
"# والمسنة : عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة."
Else
Dim s As Integer
s = 0
Do
s = s 1
If (LeftOver - (30 * s)) Mod 40 = 0 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & s & " تبيع" & " و " & Int((LeftOver - (30 * s)) / 40) & " مسنة"
Exit Do
ElseIf (LeftOver - (40 * s)) Mod 30 = 0 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int((LeftOver - (40 * s)) / 30) & " تبيع" & " و " & s & " مسنة"
Exit Do
End If
Loop Until LblResultAnimal.Caption <> ""
TxtExplicationlAnimal.Text = "تجري مذاهب الفقهاء في زكاة البقر حسب حالتك هذه : في كل 30 بقرة يتوجب عليك إخراج تبيع أو تبيعة ، وفي كل 40 بقرة يتوجب عليك إخراج مُسِنَّة." & vbNewLine & _
"# والتبيع أو التبيعة : عند الجمهور : هو ما أتم السنة ودخل في الثانية. وأما عند المالكية : فهو ما أتم السنتين ودخل في الثالثة." & vbNewLine & _
"# والمسنة : عند الجمهور : هي ما أتمت السنتين ودخلت في الثالثة. وأما عند المالكية : فهي ما أتمت ثلاث سنوات ودخلت في الرابعة."
End If
الثالث الغنم :
نصاب الغنم : نصابها محلُ اتفاقٍ بين العلماء ، وهو سهلٌ للغاية ، وإليك التفصيل :
من 1 - 39 لا شيء فيها.
من 40 - 120 فيها شاةٌ.
من 121 - 200 فيها شاتان.
من 201 - 399 فيها 3 شياهٍ.
من 400 - 499 فيها 4 شياهٍ.
من 500 - 599 فيها 5 شياهٍ.
وهكذا ما زاد عن ذلك في كل مائة شاةٍ شاةٌ.
أظن أن أي مبرمجٍ مهما كان مستواه يستطيع كتابة كود زكاة الغنم ، وإليكم كود حساب زكاة الغنم :
'زكاة الغنم
If Trim(TxtAnimal.Text) < 40 Then
LblResultAnimal.Caption = "لا يتوجب عليك إخراج شيءٍ ، فالحد الأدنى لنصاب زكاة الغنم هو : 40 شاة"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن الحد الأدنى لزكاة الغنم في الشريعة الإسلامية هو 40 شاة وعدد رؤوس أغنامك لم يبلغ ذلك الحد ، لذا لا يتوجب عليك إخراج أي شيءٍ."
Exit Sub
End If
If TxtAnimal.Text < 121 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : شاة واحدة كزكاة لأغنامك"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت ما بين 40 إلى 120 فتجب فيها شاة واحدة فقط."
ElseIf TxtAnimal.Text >= 121 And TxtAnimal.Text < 201 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : شاتين كزكاة لأغنامك"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت ما بين 121 إلى 200 فتجب فيها شاتان فقط."
ElseIf TxtAnimal.Text >= 201 And TxtAnimal.Text < 400 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : ثلاث شياه كزكاة لأغنامك"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت ما بين 201 إلى 399 فتجب فيها ثلاث شياهٍ فقط."
ElseIf TxtAnimal.Text >= 400 Then
LblResultAnimal.Caption = "يتوجب عليك إخراج : " & Int(TxtAnimal.Text / 100) & " من رؤوس الغنم كزكاة لأغنامك"
TxtExplicationlAnimal.Text = "اتفق جمهور العلماء على أن رؤوس الأغنام إذا كانت أكثر من 399 فتجب فيها عندئذٍ عن كل مئة رأسٍ من الغنم شاة واحدة."
End If
افدتنا افادك الله من علمه