מזהים של זמן ותאריך
מזהים אלו עוזרים לנו לקבל ולעבד מידע שקשור לזמן ולתאריך שקבוע במחשבים, במזהים אלו ניתן להשתמש בדברים מגוונים, להראות את זמן הAway, כמה זמן המחשב היה דלוק, מה השעה עכשיו, האם עכשיו שעון חורף/קיץ, וכל מה שעולה בדעתכם שקשור לזמנים.
ctime$
המזהה הראשון שעליו אני אדבר הוא
קוד: בחר הכל
$ctime
ישנן שתי אפשרויות להשתמש בו:
קוד: בחר הכל
אפשרות ראשונה: $ctime
אפשרות שנייה: $ctime(text)
אפשרות ראשונה
באפשרות הראשונה, המזהה יחזיר את מספר השניות שעברו מאז חצות של הראשון בינואר 1970 (לפי השעון של המחשב). ממבט ראשונה, זה נראה כמו משהו חסר תועלת, אך הוא מאוד נוח כשרוצים לחשב מרווח של זמן - כמה זמן עבר מנקודה אחת לנקודה שנייה, לדוגמא, כמה זמן היינו ב Away.
כאשר נכנסים ל Away, נקבע משתנה כלשהו ל $ctime
קוד: בחר הכל
set %away_time $ctime
וכאשר נחזור מ Away
קוד: בחר הכל
set %away_time $calc($ctime - %away_time)
בדוגמא ניתן לראות שהשתמשי במזהה calc$ שאותו אני רק אזכיר בקצרה, זהו מזהה שהוא בעצם מחשבון (Calculator), שמאפשר לנו לעשות חישובים חשבוניים.
אפשרות שנייה
האפשרות השנייה, היא לדרוש את מספר השניות שעברו עד לתאריך מסוים, שהתאריך הזה יכול להיכתב בכמעט כל דרך שניתן לחשוב עליה, והנה כמה דוגמאות:
קוד: בחר הכל
$ctime(January 1 1970 00:00:00)
$ctime(3rd August 1987 3:46pm)
$ctime(21/4/72 1:30:37)
$ctime(Wed 1998-3-27 21:16)
(מי ששואל עכשיו אם הדוגמא הראשונה תעבוד, אז התשובה היא לא, אבל זה טוב שהוא שם לב )
asctime$
עוד מזהה חשוב, שעליו מתבססים מזהים אחרים הינו asctime$, כי בו בעצם מוגדר התחביר (Syntax) של הזמנים, מיד אני אסביר ע"י דוגמאות, 3 דרכים שבו ניתן להשתמש.
אם אנחנו לא מספקים לו שום קלט(מה שבסוגריים) הוא יחזיר לנו את הזמן והתאריך הנוכחיים
המבנה הבסיסי:
קוד: בחר הכל
$asctime(N,format)
הערכים N ו Format הינם לא חובה, וניתן לעשות גם כך:
קוד: בחר הכל
$asctime
שיחזיר:
קוד: בחר הכל
Tue Jan 11 23:53:29 2005
N - מספר השניות מחצות בראשון בינואר 1970 שאותן רוצים לקבל במבנה "קריא" (מה שאנחנו מקבלים מ ctime$ בעצם)
Format - עיצוב המבנה של התאריך/זמן, לפי המשתנים-ערכים הבאים:
(כאשר נתון רק N, יהיה העיצוב של ברירת המחדל, וכאשר נתון רק Format, זה יהיה על הזמן הנוכחי)
קוד: בחר הכל
שנה yy 05
yyyy 2005
חודש m 1
mm 01
mmm Jan
mmmm January
יום d 9
dd 09
ddd Mon
dddd Monday
שעות h 5
hh 05
H 17
HH 17
דקות n 1
nn 01
שניות s 1
ss 01
AM/PM t a/p
tt am/pm
T A/P
TT AM/PM
מסודר oo st/nd/rd/thא
אזור זמן z +2
zz +0200
zzz +0200 GMT
הטור השמאלי ברשימה הזאת הינה סוג המידע, הטור האמצעי הינו מה צריך לכתוב, והטור הימני הינו דוגמא במה זה יוחלף.
נא לשים לב לפרטים כמו אותיות גדולות/קטנות, כי בנושא הזה, יש ביניהן הבדל.
אני מניח שכמה כרגע שואלים מה זה הoo (מסודר-Ordinal), כשאני מוסיפים את זה בצמוד לערך אחר, הוא מוסיף לו את הסיומת שלו, לדוגמא אם זה 1 יתווסף אליו st, כדי שיהיה 1st, למספר שתיים, יתווסף nd ויהיה 2nd, וכו' (דוגמא בהמשך).
אם נחזור לדוגמא הקודמת, ונרצה גם להודיע שנגמר ה Away ומאיזה שעה היה ה Away, ניתן לעשות כך:
קוד: בחר הכל
set %away_time $ctime
וכאשר נחזור מ Away
קוד: בחר הכל
amsg I have been away since $asctime(%away_time,mmm doo yyyy HH:nn:ss zzzz) for $calc($ctime - %away_time) seconds.
בדוגמא בכוונה ניסיתי להכליל כמה שיותר גורמים כדי להבין את זה טוב יותר, אני חושב שזה די ברור מה יחזיר המזהה, אם לא, פשוט תעשו ככה כדי לראות בעצמכם:
קוד: בחר הכל
//echo -a $asctime(mmm doo yyyy HH:nn:ss zzzz)
עכשיו אחרי שכיסינו את המזהים הבעיתיים, השאר יהיה קל.
כאשר נוצר ה mIRC, הבין היוצר(Khaled - או בשפתנו, חאלד), שאם מישהו רוצה להציג רק את הזמן, זה יכול להיות קצת מעיק להשתמש כל הזמן ב asctime$ ולכן הוא יצר מזהים יותר נוחים לשימוש, שכל אחד מהם הוא מקבילה למבנה מסוים של asctime$:
קוד: בחר הכל
(== מציין שוויון)
$date == $asctime(dd/mm/yyyy)
$adate == $asctime(mm/dd/yyyy) (לאמריקאים שבינינו)
$day == $asctime(dddd)
$fulldate == $asctime(ddd mmm dd HH:nn:ss yyyy)
$time == $asctime(HH:nn:ss)
$timestamp == $asctime([HH:nn])
duration$
המבנה שלו:
קוד: בחר הכל
$duration(seconds,N)
מזהה זה "יתרגם" לנו כמות של שניות לשבועות/ימים/שעות/דקות/שניות.
seconds - מספר השניות שאותן הוא "ישנה".
N - ערך לא חובה, אם הוא שווה ל 2, התשובה לא תכלול שניות, ואם הוא שווה ל 3, התשובה תהיה במבנה של שניות:דקות:שעות (לפי הערכים הנ"ל).
דוגמאות:
קוד: בחר הכל
$duration(3661) == 1hr 1min 1sec
$duration(3661,2) == 1hr 1min
$duration(3661,3) == 01:01:01
ובנוסף, ניתן גם להשתמש בזה הפוך - לתת לו כמות של שבועות/ימים/שעות/דקות/שניות, והוא יתרגם אותם לכמות של שניות
$duration(2hr 32min 55sec) == 9175
ואם שוב נחזור לדוגמת ה Away, ע"י המזהה הזה, ניתן להמיר את מספר השניות שהיינו ב Away לזמן יותר קריא.
קוד: בחר הכל
set %away_time $ctime
וכאשר נחזור מ Away
קוד: בחר הכל
amsg I have been away since $asctime(%away_time,mmm doo yyyy HH:nn:ss zzzz) for $duration($calc($ctime - %away_time)) .
uptime$
קוד: בחר הכל
$uptime(mirc|server|system,N)
בעזרת המזהה הזה, אנחנו יכולים לדעת כמה זמן המירק/המחשב היו דלוקים, או כמה זמן אתם מחוברים לשרת מסוים :
קוד: בחר הכל
$uptime(mirc) - כמה זמן המירק דלוק
$uptime(system) - כמה זמן המערכת(המחשב) דלוק
$uptime(server) - הזמן שאתם מחבורים לשרת
N - לא חובה, כאשר הוא לא קיים, הזמנים יהיו באלפיות השנייה, כאשר הוא שווה ל 1, התשובה תהיה באותו מבנה של duration$, כאשר N שווה ל 2, יהיה אותו מבנה כמו של duration$ אך ללא שניות, וכאשר N שווה ל 3, הזמן יהיה בשניות, ולא באלפיות השנייה.
מזהים נוספים
daylight$ - במקרה של שעון קיץ, יחזיר את מספר השניות שהבן הזמן "זז", ואם זה שעון חורף, יחזיר 0.
gmt$ - יחזיר את השעה באזור הזמן GMT לפי אותו מבנה של ctime$
idle$ - יחזיר את זמן האי-עבודה (בשניות) של ה mIRC, אותה תגובה שמקבלים מ CTCP Finger.
online$ - מחזיר את הזמן (בשניות) שעבר בדיאלוג של שעון העצר המקוון (הכפתור של הסטופר בסרגל הכלים, בין ספר הכתובות לצבעים).
ticks$ - מחזיר את מספר ה"טיקים" שעברו מאז שהמחשב נדלק (או במילים פשוטות: כמה אלפיות השנייה המחשב היה דלוק), משמש לחישובי זמן יותר מדויקים, לדוגמא אם בונים משחק ורוצים למדוד זמני תגובה או למדידת משך זמן של פעולות במירק.
timestampfmt$ - מחזיר את מבנה חותמת הזמן כפי שמצוינת באפשריות>הודעות.
timezone$ - מחזיר את אזור הזמן שאנחנו נמצאים בו (בשניות) ביחס ל GMT. (התקין לישראל בחורף זה 7200- = שעתיים).
סיכום
כאשר רוצים לעשות כל דבר שקשור בזמן/שעה/תאריך, משתמשים במזהים שציינתי למעלה, בעצם יש רק כמה מזהים עיקריים, שעליהם מבוססים שאר המזהים.
אני לא ציינתי את המזהים הבאים:
timer$
ltimer$
ctimer$
מהסיבה שאני חושב שהם שייכים למדריך על טיימרים ולא למדריך הזה.
אף זכויות אינן שמורות לאף אחד. אתם חופשיים להפיץ/לשתף/לפרסם את המדריך הזה (ואף רצוי), אבל אני רק מבקש שתתנו קרדיט מתאים.
נכתב ע"י Agent_Mike לפורום mIRCx.