דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. כשהיום מתארך ל25 ו26 שעות או יותר..

כשהיום מתארך ל25 ו26 שעות או יותר..

מתוזמן נעוץ נעול הועבר תכנות
10 פוסטים 6 כותבים 183 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ח מנותק
    ח מנותק
    חוקר
    כתב ב נערך לאחרונה על ידי חוקר
    #1

    יש לי טבלת נתונים נקרא לזה טבלת תורים.
    התורים מתחילים בשעות אחה"צ ערב עד לסיום הביקוש להיום.
    הכל ממוין ומסודר ומטופל ברמה יומית לפי תאריך לועזי, ולאחר מכן לפי שעה.
    האתגר הוא איך אני מתמודד כאשר יש עומס של תורים ואני אמור להוסיף עוד ועוד תורים אשר מתארכים לאחר 12 בלילה.
    זה מתבטא בכמה נקודות, מקווה שאני זוכר/לוקח בחשבון את כולם.

    1. בתצוגה בממשק כשהנתונים מסוננים ברמה יומית עלי לשמור אותם לפי התאריך של יום העבר, כי אחרת הם יוצגו רק ביום הבא כתורים הראשונים, וכן בכל שאר הפעולות שתלויות בתאריך של היום החולף אני רוצה אותם בתוך היום החולף, וא"כ עלי לשמור אותם לתאריך של היום הנוכחי-החולף.
      הבעיה היא שהמיון שהוא לפי שעות מתערבב, כי דבר ראשון יוצגו בממשק התורים האחרונים ולאחר מכן דהיינו מ0 עד נניח 1-2, ואחריהם יוצגו התורים של אחה"צ המתחילים ב18 ואילך.
    2. בעת הרישום במערכת אני נותן לנרשם 4 אפשרויות.
      א. התור הראשון הפנוי.
      ב. התור האחרון הפנוי.
      ג. רשימת התורים הפנויים לפי הסדר.
      ד. הקשת שעה מבוקשת ושליפת השעה הקרובה לשעה הרצויה.
      כנ"ל אם אני שומר את כל התורים של היום לתאריך הלועזי של היום החולף ולא היום הבא, זה יוצר לי בלאגן בשליפת התור הראשון הפנוי (שכהיום הוא מגיע מתוצאה של מיון לפי שעות עולה), בעיה בתור האחרון, בעיה בסדר הרשימה של השעות הפנויות, ובעיה בשליפת השער הקרובה ליעד כי הרשימה תציג תמיד טווח שעות מ0עד 24 במקום טווח של 18 עד 02.
      אני חשבתי על פתרון שבמקום לשמור את השעה בשדה מסוג time (מדובר ב mysql) אני ישמור כטקסט, ואז אני ממשיך את התורים לשעה 24:30 ו25:15 וכו'.
      כאשר 25:15 מתורגם ל 01:15 שזה יתבטא מבחינתי:
    3. בממשק הניהול אני מחליף בתצוגה את 25 ל1 וכו'.
    4. בעת השמעת התורים/התור האחרון אני ישמיע/יציג לאחר המרה כנ"ל 25 = 1.
    5. ואותו דבר בעת הקשת שעה שאני מחזיר את השעה הקרובה ליעד אני מחפש לפי מספר עולה, ורק בתצוגה/השמעה אני ממיר את התוצאות שלאחר 12 בלילה ל1 ו2 וכו'.
      אשמח לחוות דעתכם האם זו הדרך הנכונה?
      האם יש דרך יותר טובה?
      אולי כן לשמור לפי התאריך של היום הבא ולטפל בבעיות הנ"ל (ושיצוצו) בצורה נקודתית.
      מה אתם הייתם עושים?
    OdedDvirO א 2 תגובות תגובה אחרונה
    2
    • OdedDvirO מנותק
      OdedDvirO מנותק
      OdedDvir
      השיב לחוקר ב נערך לאחרונה על ידי
      #2

      @חוקר אני נגד להמציא את הגלגל באופן כללי.
      ליצור שעה כמו 25:15 נשמע לי מתכון להרבה מאוד צרות.

      אני הייתי משתמש בגישה הבאה:
      עבור כל תור היתי שומר את

      1. שעת ההתחלה כולל תאריך (DateTime)
      2. משך התור בדקות.

      בעת הרישום במערכת הייתי מחשב (על פי נתונים הנ"ל) את כל התורים הפנויים בטבלה (אפשרות ג) וממילא הרווחתי בקלות גם את אפשרויות א,ב.
      גם אפשרות ד קלה מאוד בהנתן הטבלה הנ"ל.

      A תגובה 1 תגובה אחרונה
      2
      • א מנותק
        א מנותק
        אבי
        השיב לחוקר ב נערך לאחרונה על ידי
        #3

        @חוקר
        לא הבנתי מה הבעיה לשמור יחד עם התאריך, מה שישמור על הסדר הנכון בכל המקומות, תצוגה, קריאה וכו'
        ואם יש לך איזשהו ענין לדעת שכל החבילה הזו שייכת ליום החולף תסמן את זה בשדה אחר באיזו שהיא צורה עם נתון שמתאפס / מתקדם בכל בוקר או צהריים וכדו'
        כלל ברזל בתכנון וארכיטקטורת מסדי נתונים שלמדתי מפי מומחים: תמיד לנסות כמה שיותר להצמד לאמת הפשוטה! כמה פשוט, ככה חכם!

        תגובה 1 תגובה אחרונה
        3
        • A מנותק
          A מנותק
          avi rz
          השיב לOdedDvir ב נערך לאחרונה על ידי
          #4

          @אבי
          נראה לי שזה בידוק מה ש @odeddvir התכוון ומאוד פשוט.

          בנוסף לתאריך של התור,
          זה אומר בעצם, שיש תאריך של התור, = ליום של אותו תאריך
          וחוצמזה השדה של השעה יכלול גם תאריך.
          ואז את הסינון(ליום המדובר) לפי התאריך,
          ואת המיון של התורים, לעשות לפי השעה.

          תגובה 1 תגובה אחרונה
          3
          • ח מנותק
            ח מנותק
            חוקר
            כתב ב נערך לאחרונה על ידי
            #5

            אני מבין כעת שהיות ובמבנה הטבלה כשיצרתי אותה הגדרתי עמודה תאריך ועמודה שעה, ולכן לא העליתי בדעתי את האפשרות למיין לפי תאריך מלא..
            יש צדק בדבריכם.
            אני בודק שזה אכן ישים בעזה"י

            תגובה 1 תגובה אחרונה
            0
            • ח מנותק
              ח מנותק
              חוקר
              כתב ב נערך לאחרונה על ידי
              #6

              רק א"כ אשמח לדעת איך אני ממיין מערך על פי עמודת תאריך ושעה?
              לכאורה JS יודע להמיר אותו לערך מספרי ולמיין אותו, נכון?
              כמו"כ לגבי הנושא של שליפת שעה סמוכה לשעה הרצויה איך אתמודד עם זה? אולי להמיר את התאריכים המלאים לחתימות זמן וכן את השעה המבוקשת לחתימת זמן וכך אוכל לבקש את התוצאה הנכונה הסמוכה לתאריך המבוקש?
              ובעיה נוספת, היות שבממשק אני אמור להציג את השעה בעמודה ללא התאריך (זה מאוד יסרבל), מה עדיף? להוסיף עמודה נוספת המכילה את השעה בלבד? או בעת הרנדור של הHTML לחתוך את התאריך או מה?

              א A 2 תגובות תגובה אחרונה
              0
              • א מנותק
                א מנותק
                אהרן
                השיב לחוקר ב נערך לאחרונה על ידי
                #7

                @חוקר אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                JS יודע להמיר אותו לערך מספרי ולמיין אותו

                לדעתי שמור אותו מלכתחילה כערך מספרי
                https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime

                ח תגובה 1 תגובה אחרונה
                1
                • ח מנותק
                  ח מנותק
                  חוקר
                  השיב לאהרן ב נערך לאחרונה על ידי
                  #8

                  @אהרן אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                  @חוקר אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                  JS יודע להמיר אותו לערך מספרי ולמיין אותו

                  לדעתי שמור אותו מלכתחילה כערך מספרי

                  זו סתם שאלה עקרונית בלי קשר, האם לשמור נתונים כתאריך ושעה או כתחימת זמן יוניקס.
                  במקרה כאם אני חושב שאכן מספיק זמן יוניקס, רק שאצטרך תזכורת בעד 18 שנה יחד עם כל שאר המתכנתים שמשתמשים בשיטה זו, לראות איך מתמודדים את התאריך לאחר 2038-01-09 03:14:07

                  nigunN תגובה 1 תגובה אחרונה
                  2
                  • A מנותק
                    A מנותק
                    avi rz
                    השיב לחוקר ב נערך לאחרונה על ידי
                    #9

                    @חוקר אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                    רק א"כ אשמח לדעת איך אני ממיין מערך על פי עמודת תאריך ושעה?
                    לכאורה JS יודע להמיר אותו לערך מספרי ולמיין אותו, נכון?

                    אני די חדש בjs אבל נראה לי כמו בvb שבעצם הdate הוא ערך מספרי -עשרוני מ ה01/01/1900 כל יום הוא יחידה ושעה זה יחידה לחלק ל24 ודקות וכו',(בJS החלוקה שונה - אבל ברור שמשתנה תאריך כשלעצמו, הוא ערך מספרי).
                    והרעיון במשתנה מיוחד של date או dateTime (כמובן לגבי הערך חוץ מהפונקציות שבו), הוא התצוגה שהוא מראה את זה כתאריך ושעה.
                    לכן לכאו' מיון פשוט הוא יבין כבר מה אתה רוצה.
                    מקווה שלא טעיתי אשמח שיתקנו אותי, א"כ.

                    @חוקר אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                    ובעיה נוספת, היות שבממשק אני אמור להציג את השעה בעמודה ללא התאריך (זה מאוד יסרבל), מה עדיף? להוסיף עמודה נוספת המכילה את השעה בלבד? או בעת הרנדור של הHTML לחתוך את התאריך או מה?

                    כנ"ל אני חדש בJS אבל יש פונקציות כגון myDate.getHours() + ':' + myDate.getMinutes()
                    משהו הרבה יותר נורמלי, (בזה יש בעיה, שבשעה 00 הוא מראה רק 0 אחד והוא לא נכנס לתוך input type="time" רק אם מוסיפים 0)

                    תגובה 1 תגובה אחרונה
                    1
                    • nigunN מנותק
                      nigunN מנותק
                      nigun
                      השיב לחוקר ב נערך לאחרונה על ידי nigun
                      #10

                      @חוקר אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                      @אהרן אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                      @חוקר אמר בכשהיום מתארך ל25 ו26 שעות או יותר..:

                      JS יודע להמיר אותו לערך מספרי ולמיין אותו

                      לדעתי שמור אותו מלכתחילה כערך מספרי

                      זו סתם שאלה עקרונית בלי קשר, האם לשמור נתונים כתאריך ושעה או כתחימת זמן יוניקס.
                      במקרה כאם אני חושב שאכן מספיק זמן יוניקס, רק שאצטרך תזכורת בעד 18 שנה יחד עם כל שאר המתכנתים שמשתמשים בשיטה זו, לראות איך מתמודדים את התאריך לאחר 2038-01-09 03:14:07

                      אם יהיה בעיות זה יצוץ לך מכל מקום
                      במסדי נתונים זה דווקא יהיה המקום היחסית קל
                      סך הכל לשנות את הסוג של העמודה.
                      ולהמשיך הלאה (לכאורה, לא מכיר את באג 2038 לעומק)

                      מייל: nigun@duck.com

                      תגובה 1 תגובה אחרונה
                      1

                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום