יחידה:תאריך

גרסה מ־20:47, 27 ביולי 2014 מאת wikipedia:he>ערן (יצירת דף עם התוכן "function parseStrDate(frame) local dateStr = frame.args[1] local dates = { ['ינואר']= 1, ['פברואר']= 2, ['מרץ']= 3, ['אפריל']= 4,...")
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)

יחידה זו מיועדת לביצוע פעולות נפוצות על תאריכים.

  • #חשב - מקבלת תאריך טקסטואלי ופורמט ומחלצת את מהתאריך את הפורמט הרצוי
  • #חשב טווח - מקבלת טווח תאריכים ומחשבת את ההפרש ביניהם

חשב

פורמט דוגמה תוצאה
יום {{#invoke:תאריך|חשב|[[3 בפברואר]] [[2013]]|יום}} 3
יום {{#invoke:תאריך|חשב|[[3 בפברואר]] [[2013]]{{הערה|א}}|יום}}
חודש {{#invoke:תאריך|חשב|[[3 בפברואר]] [[2013]]|חודש}} 2
שנה {{#invoke:תאריך|חשב|[[3 בפברואר]] [[2013]]|שנה}} 2013
שנה {{#invoke:תאריך|חשב|[[פברואר]] [[2013]]|שנה}}
TS {{#invoke:תאריך|חשב|[[3 בפברואר]] [[2013]]|TS}}

הערות:

  • פורמט TS ניתן להעביר לפונקציות זמן של הוראות תנאי.
  • ההמרה מתעלמת מסוגריים מרובעות של קישורים
  • ניתן להוסיף פרמטר error והתוכן שלו יוצג במקרה של שגיאה בתאריך. (רצוי להכניס במקרה כזה את הדף לקטגוריה כלשהי שתאפשר מעקב אחרי דפים לא תקינים. ברירת המחדל היא קטגוריה:דפים עם שגיאות בתאריך)

חשב טווח

דוגמה תוצאה
פורמט ברירת מחדל: אוטומטי {{#invoke:תאריך|חשב טווח|[[3 בפברואר]] [[1947]] - [[15 בספטמבר]] [[2013]]}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
פורמט ברירת מחדל: אוטומטי (דוגמה עם שנים וסימן מינוס) {{#invoke:תאריך|חשב טווח|1947 - 2013}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
פורמט ברירת מחדל: אוטומטי (דוגמה עם שנים וסימן קו מפריד) {{#invoke:תאריך|חשב טווח|1947–2013}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
שנים {{#invoke:תאריך|חשב טווח|[[3 בפברואר]] [[1947]] - [[15 בספטמבר]] [[2013]]|שנים}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
גיל {{#invoke:תאריך|חשב טווח|1 במרץ 1922 - 4 בנובמבר 1995|גיל}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
גיל {{#invoke:תאריך|חשב טווח|1 במרץ 1922{{הערה|ב}} - 4 בנובמבר 1995|גיל}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
גיל {{#invoke:תאריך|חשב טווח|1 במרץ 1994{{הערה|ב}} - 4 בנובמבר 1995|גיל}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
גיל {{#invoke:תאריך|חשב טווח|1 במרץ 1993{{הערה|ב}} - 4 בנובמבר 1995|גיל}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
מספר {{#invoke:תאריך|חשב טווח|1 במרץ 1922 - 4 בנובמבר 1995|מספר}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
מספר {{#invoke:תאריך|חשב טווח|1 במרץ 1922{{הערה|ב}} - 4 בנובמבר 1995|מספר}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
מספר {{#invoke:תאריך|חשב טווח|1 במרץ 1994{{הערה|ב}} - 4 בנובמבר 1995|מספר}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
מספר {{#invoke:תאריך|חשב טווח|1 במרץ 1993{{הערה|ב}} - 4 בנובמבר 1995|מספר}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
שנים לפנה"ס {{#invoke:תאריך|חשב טווח|[[3 בפברואר]] 1900 לפנה"ס - [[15 בספטמבר]] [[2013]]|שנים}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
ימים {{#invoke:תאריך|חשב טווח|[[3 בפברואר]] [[1947]] - [[15 בספטמבר]] [[2013]]|ימים}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
הפרש {{#invoke:תאריך|חשב טווח|[[3 בפברואר]] [[1947]] - [[15 בספטמבר]] [[2013]]|הפרש}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
ללא תאריך יעד {{#invoke:תאריך|חשב טווח|[[3 בפברואר]] [[1947]]|שנים}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
לא כולל היום האחרון {{#invoke:תאריך|חשב טווח|5 ביוני 1967 - 10 ביוני 1967}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
כולל היום האחרון {{#invoke:תאריך|חשב טווח|5 ביוני 1967 - 10 ביוני 1967|כולל=כן}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
כולל היום האחרון {{#invoke:תאריך|חשב טווח|14 ספטמבר 2014 - 14 ספטמבר 2014|כולל=כן}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.
שנה ויום {{#invoke:תאריך|חשב טווח|14 ספטמבר 2014 - 15 ספטמבר 2015|כולל=כן}} שגיאת תסריט: הפונקציה "חשב טווח" אינה קיימת.

הערות:

  • כאשר לא ניתן תאריך יעד תאריך היעד נקבע כזמן הנוכחי
  • הפרש - מציין את הפרש הזמנים בשניות וללא מילים. ניתן להשתמש בערך המוחזר בחלוקה מתאימה לקבלת יחידות זמן אחרות.
  • ניתן להוסיף פרמטר כולל=כן, ואז נלקח בחשבון גם היום האחרון. כשמדובר על טווח זמן ארוך והפורמט נבחר אוטומטי או שמכיל שנים, מתקבלת תוצאה מקורבת.
  • ניתן להוסיף פרמטר error והתוכן שלו יוצג במקרה של שגיאה בטווח התאריכים. (רצוי להכניס במקרה כזה את הדף לקטגוריה כלשהי שתאפשר מעקב אחרי דפים לא תקינים. ברירת המחדל היא קטגוריה:דפים עם שגיאות בתאריך)
  • אם לא מצוין פורמט, הוא נבחר אוטומטית:
    • עד ל-3 שבועות הוא מוצג בימים
    • עד שנה הוא מוצג בימים ושבועות
    • עד ל-10 שנים בשנים ושבועות
    • מעבר לזה רק בשנים

בדיקות

דוגמאות לשימוש ביחידה ופלט לדוגמה מודגמים ביחידה:תאריך/בדיקות.


  1. ^ א
function parseStrDate(frame)
	local dateStr = frame.args[1]
	local dates = {
		['ינואר']= 1,
		['פברואר']= 2,
		['מרץ']= 3,
		['אפריל']= 4,
		['מאי']= 5,
		['יוני']= 6,
		['יולי']= 7,
		['אוגוסט']= 8,
		['ספטמבר']= 9,
		['אוקטובר']= 10,
		['נובמבר']= 11,
		['דצמבר']= 12
	}
	dateStr = mw.ustring.gsub( dateStr, "[%[%]]", "" )

	-- replace month names to numbers
	for a in pairs(dates) do
		dateStr = mw.ustring.gsub(dateStr, 'ב'..a, dates[a]) 
	end
	-- if there are alhpabet chars return nil (unexpected character)
	if mw.ustring.find(dateStr, '%a') then
		return nil
 	end
 	
	local parts = mw.text.split(dateStr,' ')
	local dateType = frame.args[2]
	local res
	if dateType=='שנה' then
		res = parts[3]
	elseif dateType=='חודש' then
		res = parts[2]
	elseif dateType=='יום' then
		res = parts[1]
	end
	return res
end

return {
	['חשב'] = parseStrDate
}