שיחת תבנית:טווח שנים

תגובה אחרונה: לפני 4 שנים מאת ערן בנושא בעיה בחישוב בשורה 947

{{טווח שנים}} עריכה

הועבר מהדף ויקיפדיה:תבנית/אולם דיונים

כתבתי תבנית שמחשבת מספר שנים שעברו בין שני תאריכים.

  • {{טווח שנים|1955|1985}} ← 30
  • {{טווח שנים|25 בנובמבר 1955|5 בינואר 1985}} ← 29
  • {{טווח שנים|25 בנובמבר 1985|5 בינואר 1955}} ← -31
  • {{טווח שנים|1 בינואר 1955}} ← 69
  • {{טווח שנים|1955}} ← 69
  • {{טווח שנים||1955}} ← -70

יגאל (בקשת עזרה, IKhitron ושיחה) 19:27, 16 באפריל 2015 (IDT)תגובה

למה הדיון? זו תבנית טכנית, לא פרמטרית. בורה בורה - שיחה 23:02, 16 באפריל 2015 (IDT)תגובה
זה לא שציפיתי להתנגדות, כן? מבחינתי זאת פרסומת. יגאל (בקשת עזרה, IKhitron ושיחה) 23:09, 16 באפריל 2015 (IDT)תגובה
יאללה, ניתן לך סופ"ש של תהילה. ביום ראשון אני מארכב. בורה בורה - שיחה 23:47, 16 באפריל 2015 (IDT)תגובה
למה? המון תבניות לא בשימוש כי אף אחד לא יודע עליהן, וחבל. יגאל (בקשת עזרה, IKhitron ושיחה) 23:59, 16 באפריל 2015 (IDT)תגובה
נקודה למחשבה: במקרה של שגיאה התבנית מחזירה 0 שיכול להיות גם ערך תקין במקרים מסוימים, למשל :
  • {{טווח שנים|5 בינואר 1984|אחד בינואר 1999}} => 0 (ערך לא תקין)
  • {{טווח שנים|5 בינואר 1984|8 בינואר 1984}} => 0 (ערך תקין)
ערן - שיחה 00:09, 17 באפריל 2015 (IDT)תגובה
בהחלט. חשבתי על זה. זה בהחלט לא נכון, אבל המטרה שלי הייתה לקבל תמיד מספר ותו לא. עדיף תשובה לא נכונה (למשל, לא נתפוס מישהו בגיל מסויים לקטגוריה) מאשר שגיאת מפענח. בהתחלה שקלתי להחזיר ערך מוחלט של הטווח, אז היה אפשר לעשות -1. אבל כשוויתרתי על זה מסיבות של סימטריות, זה נפל. מה דעתך? יגאל (בקשת עזרה, IKhitron ושיחה) 00:27, 17 באפריל 2015 (IDT)תגובה
IKhitron אני לא חושב שזו בעיה, אבל ציינתי זאת כדי שזה יהיה ברור. אני רואה שכבר הכנסת את זה לתיעוד התבנית :) ערן - שיחה 18:50, 17 באפריל 2015 (IDT)תגובה
ברור, ברגע שקראתי את מה שכתבת אתמול. יגאל (בקשת עזרה, IKhitron ושיחה) 18:56, 17 באפריל 2015 (IDT)תגובה
נראה לי עדיף שיהיה ערך מוחלט כי אין שימוש בתאריכים עם מינוס (אם יש צורך אז רושמים "לפני X שנים") וגם זה שם התבנית - טווח = ערך מוחלט. זה יוכל לחסוך בדיקה בדף התבנית כדי להיזכר איזה תאריך רושמים קודם.
אם בא לך ואתה יודע איך, אז אולי תעשה שהתבנית תקבל גם תאריכים עבריים כפרמטר? זה הרי יותר קשה לחשב אותם מאשר תאריכים לועזיים ולכן יש בזה אפילו צורך גדול יותר.
הפרויקט הבא אחרי התבנית הזאת, זה לעשות בוט שבכל מקום שהתבנית מופיעה הוא יחליף אותה במספר המתאים חחחחחחחחחחחח. Badidipedia - שיחה 22:43, 25 באפריל 2015 (IDT)תגובה
ויתרתי על ערך מוחלט מכיוון שהמנגנון של וויקי עובד בצורה שלא מאפשרת את זה: 29.5 מעוגל להיות 29, -29.5 מעוגל להיות -30. לכן הפעלת סימטריה תגרום ליצירת תשובות לא אחידות (טווח בין X ל-Y לא שווה לטווח בין Y ל-X).
על תאריך עברי - נשמע אתגר מעניין, אנסה למצוא זמן לזה. יגאל (בקשת עזרה, IKhitron ושיחה) 14:34, 26 באפריל 2015 (IDT)תגובה
אני לא מכיר את המנגנון של ויקי אבל תנסה קודם לעשות ערך מוחלט ורק אח"כ לעגל. זה אמור לפתור את הבעיה. Badidipedia - שיחה 14:41, 26 באפריל 2015 (IDT)תגובה
  אני מקבל את התוצאה כבר מעוגלת. יגאל (בקשת עזרה, IKhitron ושיחה) 14:47, 26 באפריל 2015 (IDT)תגובה
עשיתי שתמיד יחזיר ערך חיובי וגם הודעת שגיאה נחמדה  . Badidipedia - שיחה 23:07, 26 באפריל 2015 (IDT)תגובה
ביטלתי את זה כי זה גרם לשגיאת מפענח בכמה אלפי ערכים. ובכל מקרה, הסברתי לך למה זה בלתי אפשרי. יגאל (בקשת עזרה, IKhitron ושיחה) 12:54, 27 באפריל 2015 (IDT)תגובה
IKhitron כמו שאמרתי לך, הפעם אני אתייעץ לפני שאני מעלה משהו לתבנית. שכתבתי את ההצעה לתבנית כך שתחזיר ערך מוחלט ולא מספר שלילי, כולל שמירה על סימטריה, נכון לעכשיו הורדתי את הודעת השגיאה כדי להשאיר את התבנית יותר פשוטה אבל נראה לי שכדאי שהיא תהיה תלויה בפרמטר שהברירת מחדל שלו תהיה להציג אותה. וידאתי שההצעה לתבנית לא תעשה שוב בעיות בערך מירזה טלטוביץ'. ההצעה נמצאת במשתמש:Badidipedia/טיוטה/תבנית:טווח שנים.

הנה הדוגמאות שנמצאות בתבנית:טווח שנים כאשר הם רצות עם הטיוטה:

  • {{טווח שנים|1955|1985}} ← 30
  • {{טווח שנים|25 בנובמבר 1955|5 בינואר 1985}} ← 29
  • {{טווח שנים|5 בינואר 1985|25 בנובמבר 1955}} ← 29
  • {{טווח שנים|1 בינואר 1955}} ← 69
  • {{טווח שנים||1 בינואר 1955}} ← 69
  • {{טווח שנים|1955}} ← 69

תודה רבה לכולם על הסבלנות וסליחה על הטרחה משתמש:ערן, משתמש:ישרון, משתמש:IKhitron ומשתמש:בורה בורה.     Badidipedia - שיחה 15:04, 27 באפריל 2015 (IDT)תגובה

היי, Badidipedia. עברתי על זה. זה נראה עכשיו הרבה יותר טוב, והמנגנון הוא הגיוני. רק דבר אחד - עשית סימטריה לכיוון הלא נכון. כלומר:
  • {{טווח שנים|1 בינואר 1955|1 במרץ 1955}} ← 0

במקום 0. תקן את זה ותחזור לכאן. יגאל (בקשת עזרה, IKhitron ושיחה) 16:02, 27 באפריל 2015 (IDT)תגובה

  בוצע. יש לך דרך לבדוק מראש שלא יהיה עוד שגיאות באדום כמו שהיה אתמול או שאחרי שעשינו את הבדיקות נשליך יהבנו בה'? Badidipedia - שיחה 16:21, 27 באפריל 2015 (IDT)תגובה
יפה, Badidipedia. יש לי דרך, אבל זה לא יקרה. אמרתי לך, תיצור עוד תבנית, שמחשבת ערך מוחלט, אל תחליף את הקיימת. תמצא לה שם הולם, תוסיף אותו בפרק ראו גם בכל המקומות הרלוונטיים. השימוש בגיל לערכי אישים מצריך את זה ללא ערך מוחלט. אולי יום אחד בורה בורה יחליט לצוד את כל הערכים בהם תאריך לידה טרם קרה או מאוחר יותר מתאריך פטירה. ככל שיש יותר אפשרויות למשתמש, ככה יותר טוב. יגאל (בקשת עזרה, IKhitron ושיחה) 16:42, 27 באפריל 2015 (IDT)תגובה
העניין הוא שלעולם לא צריך טווח שנים שלילי (אין כזה דבר "בן -X שנים") וחבל שיהיו 2 תבניות שיבלבלו את הכותבים - בזמן שאנו בוכים על הראשונות של עוגן\עוגן2 אין טעם להוסיף אחרונות.
מה אתה אומר על הודעת שגיאה שמופיעה כברירת מחדל ותלויה בפרמטר?! ראית את הדוגמה(בלי הפרמטר)?! Badidipedia - שיחה 16:57, 27 באפריל 2015 (IDT)תגובה
דווקא כן, כמו בדוגמה שהזכרתי. אם התוצאה היא שלילית, הכנס לקטגוריה של שגיאות.
בעניין הודעה בתבנית שלך - זה בסדר גמור. אצלי זה בלתי אפשרי כי זה נוצר כך שלעולם לא יוחזר משהו חוץ ממספר כדי לא לגרום לשגיאת מפענח תוך כדי חישוב. הרי לא תחבר 3 עם הודעת שגיאה, Badidipedia.
וזה לא המקרה של עוגן. מדובר כאן על שתי תבניות דומות, אבל עושות עבודה שונה. יגאל (בקשת עזרה, IKhitron ושיחה) 17:04, 27 באפריל 2015 (IDT)תגובה
רק עכשיו הבנתי את הדוגמה שלך. אם אני מבין נכון, אתה רוצה שיהיה אפשר באמצעות התבנית לזהות שגיאה של בלבול תאריכים. כיוון שהתבנית מתייחסת רק לטווח ולא לתזמון לא נראה לי שהתבנית צריכה לספק אפשרות כזאת והיא גם יכולה שלא לתת תוצאות טובות בגלל זה ולמעשה ייתכן שהתוצאות הלא טובות פשוט נגרמו מהתבלבלות בסדר הפרמטרים. בכל מקרה לא נראה לי שכדאי להחזיק 2 תבניות למטרה כל כך דומה.
לעניין ההודעה, ההצעה שלי היא כזאת: תוסיף בתבנית פרמטר "מספר" שבברירת מחדל שהוא מקבל את הערכים "כן" ו"לא" כאשר לא הוא הברירת מחדל. הפרמטר יקבע האם התשובה כשיש שגיאה תהיה מספר או הודעה. דוגמה:
התבנית נוצרה כדי לזהות שגיאות, Badidipedia. היא קיימת רק בשביל זה. ובלבול בפרמטרים זאת שגיאה מספיק חמורה. ישנות עשרות תבניות דומות בוויקיפדיה ולא יקרה שום דבר אם תהיינה שתיים שעושות דברים שונים לגמרי. בעניין ההודעה - בהחלט, למה לא. אתה מוזמן גם בתבנית שלי להוסיף בזהירות רבה את האפשרות הזאת כך שבמידה ואין פרמטר זה יהיה בלי הודעת שגיאה, כדי שזה לא יפגע בערכים. יגאל (בקשת עזרה, IKhitron ושיחה) 17:48, 27 באפריל 2015 (IDT)תגובה
בפועל גם כאשר התבנית מופעלת מתוך תבנית:גיל לערכי אישים היא מחזירה ערכים שליליים ולא מתריעה על שגיאה + יכול להיות שהתבנית שתופסת את השגיאות שם לא עובדת טוב. לדעתי גם התבנית {{גיל לערכי אישים}} לא הייתה צריכה לקבל תאריכי לידה\פטירה אלא סתם תאריך1 ותאריך2 וכיוון שהיא כבר מקבלת אז לא צריך לעשות רק בשבילה תבנית מיוחדת. אם המטרה היא שהקוד בתוך {{גיל לערכי אישים}} יהיה מודולרי אז אפשר לכתוב את {{טווח שנים}} בתוך המרחב של {{גיל לערכי אישים}}. אם אתה עדיין לא מסכים איתי אז אני אפתח אשכול חדש ויציע את התבנית החדשה תוך אמירה שלדעתי עדיף שהתבנית תהיה אחת והקהילה תוכל להחליט. לעניין הודעת השגיאה אם אתה חושב שזה טוב לתבנית שלך אז לאחר שנסגור את העניין של תבנית 1\2 אני יוכל לעשות את זה גם אצלך. Badidipedia - שיחה 18:42, 27 באפריל 2015 (IDT)תגובה
זה לא מחזיר כי לא ביקשנו ממנו, נכון לעכשיו. {{טווח שנים}} נוצרה לפתרון בעיה מסויימת. אתה יכול להציע איחוד, אבל להערכתי יש סיכוי כ-40% שזה יתקבל. אין טעם להגביל את עצמך כשאפשר לעשות כמה אופציות. מקסימום שתקבל, אני מניח, זאת הצעה להוסיף לתבנית קיימת |מוחלט=כן שבמקרה כזה ייחשב ערך מוחלט. אבל את זה אתה יכול לעשות גם עכשיו בלי דיון. אף אחד לא יגיד לך מילה אם תעשיר תבנית. לבטל פונקציונליות קיימת - זה יותר קשה. יגאל (בקשת עזרה, IKhitron ושיחה) 18:55, 27 באפריל 2015 (IDT)תגובה
התבנית נוצרה רק עכשיו כך שישנם דפים מועטים שבהם צריך לטפל. אולי אפשר לעשות כמו שהצעת עם המוחלט אבל שהברירת מחדל שלו תהיה "כן" וב{{גיל לערכי אישים}} נכתוב בפרמטר "לא"?! המטרה היא שלא ישנה הסדר כשמשתמשים בתבנית... Badidipedia - שיחה 19:08, 27 באפריל 2015 (IDT)תגובה
שום בעיה, Badidipedia. אבל: 1. אנחנו צריכים למצוא שם נורמלי. כי מוחלט=לא זה לא הגיוני. משהו כמו גםשלילי=כן. 2. אתה לא יכול לדעת בכמה דפים צריך לשנות. אני מניח שתצטרך ליצור קטגוריית דמה כדי לראות איפה התבנית מופיעה. יגאל (בקשת עזרה, IKhitron ושיחה) 19:21, 27 באפריל 2015 (IDT)תגובה
1. אולי אפשר "הפרש=כן" 2. קטגוריה יכולה לבלבל כי יש את תבנית:גיל לערכי אישים שתגרום לכך שכל הדפים שבהם היא מופיעה יהיו גם הם בקטגוריה. בגלל שתבנית:טווח שנים היא חדשה אז כנראה שלא הוסיפו אותה להרבה דפים. אפשר באופן זמני לשנות את "גיל לערכי אישים" שיכיל את תוכן "טווח שנים" הנוכחי (על ידי "ס=") ואז להשתמש בשיטה שהצעת או פשוט להסתכל ב"דפים המקושרים לכאן" ואח"כ כמובן לעדכן את "גיל לערכי אישים" בתבנית עם הפרמטרים המתאימים. מה אתה אומר? צריך בשביל זה הצבעה? Badidipedia - שיחה 20:33, 27 באפריל 2015 (IDT)תגובה
|הפרש=כן נשמע לי מצויין, Badidipedia. לא הבנת אותי כנראה עם הקטגוריה. זה מה שצריך לעשות:
  1. מעדכנים את תיעוד התבנית ע"י כך שמציינים במודגש: באופן זמני יש להוסיף |הפרש=כן לכל הכללה.
  2. מוסיפים לתבנית תנאי: אם אין פרמטר הפרש או יש עם ערך שהוא לא שווה לכן, הכנס לקטגוריה זמנית.
  3. מחכים שעה עד כמה ימים עד שמספר הדפים בקטגוריה יהיה שווה למספר הדפים המקושרים לכאן.
  4. מוסיפים לגיל לטווח השנים הפרש = כן.
  5. הקטגוריה צריכה להתרוקן. אם לא, בודקים את מה שנשאר, האם יש גם שם קריאה לתבנית. אם כן, מוסיפים הפרש, אם לא, זה עדיין לא התעדכן מספיק, צריך לחכות עוד.
  6. ברגע שהקטגוריה ריקה מוסיפים את האפשרות שלך שקוראת במידה ואין הפרש = כן.
  7. בודקים שהקטגוריה עדיין ריקה.
  8. מורידים את השורה הזמנית מהתיעוד ומעדכנים אותו בהתאם לתיקונים.
  9. בודקים שהקטגוריה עדיין ריקה.
  10. מוחקים את תנאי ההוספה לקטגוריה.
ולא, לא צריך הצבעה בשביל זה. יגאל (בקשת עזרה, IKhitron ושיחה) 10:57, 28 באפריל 2015 (IDT)תגובה
הבנתי את הרעיון הכללי עם הקטגוריה אבל הצעתי רעיון אחר שנראה לי יותר פשוט וגם לא צריך לחכות כמה ימים עד שמבצעים אותו (אין עוד תבניות שמשתמשות ב{{טווח שנים}}):
  1. מעדכנים את תיעוד התבנית ע"י כך שמציינים במודגש: באופן זמני יש להוסיף |הפרש=כן לכל הכללה.
  2. מוסיפים לתבנית פרמטר סרק |הפרש=כן שלא עושה כלום.
  3. משנים באופן זמני את תבנית: גיל לערכי אישים שלא יכיל את {{טווח שנים}} אלא את הקוד שלו (ס=).
  4. מוסיפים לכל מי שנמצא שנמצא ב"מספר הדפים שמקושרים לכאן" |הפרש=כן במידת הצורך.
  5. משנים את התבנית ומורידים את ההוספה בתיעוד.
  6. מחזירים לתבנית: גיל לערכי אישים את השימוש ב{{טווח שנים}}
כנ"ל לגבי הודעת שגיאה ותיעוד שגיאה. מה אתה אומר IKhitron?
סוף סוף הבנתי למה התכוונת כשאמרת ס=. זה ס:. כן, זה אפשרי אבל אתה מצפה לחינם שזה יקח פחות זמן. אם ממש יהיה מזל זה כן, אבל ייתכן שתצטרך לחכות עד שדפים מקושרים לכאן יתרוקנו, Badidipedia. יגאל (בקשת עזרה, IKhitron ושיחה) 14:18, 28 באפריל 2015 (IDT)תגובה
IKhitron. למיטב הבנתי הדבר קורה באופן אוטומטי (בצעתי סוג של בדיקה באחת הטיוטות שלי). בכל אופן לפי השיטה שאני מציע צריך לחכות רק פעם אחת. Badidipedia - שיחה 14:39, 28 באפריל 2015 (IDT)תגובה
כשיש יותר ערכים, ויש כאן כמה רבבות, אז זה לוקח יותר זמן, Badidipedia. יגאל (בקשת עזרה, IKhitron ושיחה) 14:56, 28 באפריל 2015 (IDT)תגובה
IKhitron לא נראה לי שהבנת. עשיתי שימוש בתבנית בתוך הטיוטה שלי ולאחר מכן מחקתי את התבנית מהטיוטה שלי הטיוטה שלי נעלמה מ"דפים מקושרים לכאן" מיד ברענון הדף. בכל אופן הכי פשוט זה לנסות. ברגע שנשים "ס:" אז נדע בוודאות וזה מאמץ מאוד קטן. Badidipedia - שיחה 15:03, 28 באפריל 2015 (IDT)תגובה
הבנתי. זה שדף אחד נעלם באותו רגע זה לא אומר, מנסיון, שכולם יעלמו. ובהחלט הכי פשוט לנסות. יגאל (בקשת עזרה, IKhitron ושיחה) 15:05, 28 באפריל 2015 (IDT)תגובה

סוף העברה
בורה בורה - שיחה 16:15, 29 באפריל 2015 (IDT)תגובה

בעיה בחישוב בשורה 947 עריכה

ערן וIKhitron יש בעיה ביחידה. כל חישוב של תאריך שהתוצאה שלו הוא עשור (10, 20, 30,... וגם שלילי) מתקבלת שגיאת לואה (בדף התבנית יש שתי דוגמאות כאלו): שגיאת לואה ביחידה יחידה:תאריך בשורה 947: attempt to compare number with nil. דרך אגב, זה לא קורה בשימוש ישיר ביחידה ראו למשל:

  • {{טווח שנים|1 באפריל 2000|הפרש=כן|שגיאה=לא}} ← 24
  • {{טווח שנים|1 במאי 2000|הפרש=כן|שגיאה=לא}} ← 24
  • {{#invoke:תאריך|חשב טווח|3 בפברואר 1947 - 15 בספטמבר 2017|שנים}} ← 70 שנה
  • {{#invoke:תאריך|חשב טווח|1 באפריל 2000}} ← 24 שנים

תוכלו לבדוק ולתקן את זה? אינג. יונה ב. - שיחה - הבה נכחילה 11:54, 13 באפריל 2020 (IDT)תגובה

היי. רק ערן. אין לי מושג מה קורה ביחידה, כתבתי את התבנית בהתאם להנחיות שלו. ובתבנית עצמה אין התייחסות למקרים שונים. יגאל (בקשת עזרה, IKhitron ושיחה) 15:04, 13 באפריל 2020 (IDT)תגובה
טיפלתי בזה ביחידה. באופן כללי עדיף להשתמש ביחידה בצורה ישירה ולא דרך תבנית כאשר משתמשים בזה מתוך תבנית. (תבנית -> יחידה) במקום (תבנית -> תבנית -> יחידה). ערן - שיחה 07:50, 14 באפריל 2020 (IDT)תגובה
חזרה לדף "טווח שנים".