HISE Logo Forum
    • Categories
    • Register
    • Login

    Dates...

    Scheduled Pinned Locked Moved General Questions
    41 Posts 5 Posters 2.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Christoph HartC
      Christoph Hart @ustk
      last edited by

      Hmm, Timing is a pretty bad name for this as I would expect it to measure some benchmark stuff or handle MIDI delays etc.

      What's the problem with Time? I'm not aware of any existing classes with this name and even if, I would prefer ´Date` as an API class (there's also a popular JS library with this name so it's a bit more close to our mother language.

      Christoph HartC ustkU 2 Replies Last reply Reply Quote 1
      • Christoph HartC
        Christoph Hart @Christoph Hart
        last edited by

        reg leapYears = [1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032]; //add more if you need em
        

        Lol

        inline function isLeapYear(year) 
        {
            return year % 4 == 0;
        }
        LindonL 1 Reply Last reply Reply Quote 1
        • ustkU
          ustk @Christoph Hart
          last edited by

          @Christoph-Hart Simply because this was as far as my english brought me today 😆

          I tried Time but I encountered some conflicts with Juce Time, or I'm just idiot in the way I did it...

          Date sounds good :thumbs_up:

          Can't help pressing F5 in the forum...

          Christoph HartC 1 Reply Last reply Reply Quote 0
          • Christoph HartC
            Christoph Hart @ustk
            last edited by

            @ustk ah your class doesn‘t need to be called Time in C++ the scripting name is determined by getObjectName().

            ustkU 2 Replies Last reply Reply Quote 0
            • ustkU
              ustk @Christoph Hart
              last edited by ustk

              @Christoph-Hart If you say so :man_shrugging: Could you say it again in french please? 🤣

              EDIT: Oh ok I see :thumbs_up:

              Can't help pressing F5 in the forum...

              1 Reply Last reply Reply Quote 0
              • d.healeyD
                d.healey
                last edited by

                Yeah I think date is a good choice since that's familiar to us Javascript people :)

                Libre Wave - Freedom respecting instruments and effects
                My Patreon - HISE tutorials
                YouTube Channel - Public HISE tutorials

                1 Reply Last reply Reply Quote 2
                • ustkU
                  ustk @Christoph Hart
                  last edited by ustk

                  @Christoph-Hart @d-healey @Lindon Pull request made (along with a few others)

                  Can't help pressing F5 in the forum...

                  1 Reply Last reply Reply Quote 2
                  • LindonL
                    Lindon @Christoph Hart
                    last edited by

                    @Christoph-Hart said in Dates...:

                    reg leapYears = [1992,1996,2000,2004,2008,2012,2016,2020,2024,2028,2032]; //add more if you need em
                    

                    Lol

                    inline function isLeapYear(year) 
                    {
                        return year % 4 == 0;
                    }
                    

                    except of course this is wrong.... you will need

                    year % 100

                    and

                    year % 400

                    HISE Development for hire.
                    www.channelrobot.com

                    Christoph HartC 1 Reply Last reply Reply Quote 0
                    • Christoph HartC
                      Christoph Hart @Lindon
                      last edited by

                      @Lindon huh? This would mean that theres a leap year every 400 years so please tell everyone who has their birthday on the 29th of February that they won‘t live to see another birthday party…

                      LindonL 1 Reply Last reply Reply Quote 0
                      • LindonL
                        Lindon @Christoph Hart
                        last edited by Lindon

                        @Christoph-Hart - er you should go read up on what makes a leap year, here's the code (which I couldnt be bothered writing and testing last time out - naturally lazy...):

                        inline function isLeapYear(year) 
                        {
                            if(year % 400 == 0 )
                            {
                                   return true;
                            }else{
                                if(year % 100 == 0)
                                {
                                     return false;
                                }else{
                                    return year % 4 == 0;
                               }
                            }
                        }
                        

                        So 2000 is a leap year - but 1900 isnt.

                        HISE Development for hire.
                        www.channelrobot.com

                        Dan KorneffD 1 Reply Last reply Reply Quote 0
                        • Dan KorneffD
                          Dan Korneff @Lindon
                          last edited by

                          @Lindon here's a little script online:
                          https://www.programiz.com/javascript/examples/check-leap-year

                          inline function isLeapYear(year) 
                          {
                               if ((0 == year % 4) && (0 != year % 100) || (0 == year % 400)) 
                               {
                                    return true;
                               }  
                               else 
                               {
                                    return false;
                               }
                          }

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          d.healeyD 1 Reply Last reply Reply Quote 0
                          • d.healeyD
                            d.healey @Dan Korneff
                            last edited by

                            @Dan-Korneff Why not?

                            inline function isLeapYear(year) 
                            {
                                return (0 == year % 4) && (0 != year % 100) || (0 == year % 400));
                            }
                            

                            Libre Wave - Freedom respecting instruments and effects
                            My Patreon - HISE tutorials
                            YouTube Channel - Public HISE tutorials

                            Dan KorneffD LindonL 2 Replies Last reply Reply Quote 0
                            • Dan KorneffD
                              Dan Korneff @d.healey
                              last edited by

                              @d-healey That works too, and you save 4 lines of code.

                              Dan Korneff - Producer / Mixer / Audio Nerd

                              LindonL 1 Reply Last reply Reply Quote 0
                              • ustkU
                                ustk
                                last edited by

                                00b53da02349bc224f3f858a07c29073.jpg

                                Can't help pressing F5 in the forum...

                                1 Reply Last reply Reply Quote 1
                                • LindonL
                                  Lindon @Dan Korneff
                                  last edited by

                                  @Dan-Korneff said in Dates...:

                                  @d-healey That works too, and you save 4 lines of code.

                                  if we are interested in saving lines of code my original version is precisely 1 line.... :-)

                                  HISE Development for hire.
                                  www.channelrobot.com

                                  Dan KorneffD 1 Reply Last reply Reply Quote 1
                                  • Dan KorneffD
                                    Dan Korneff @Lindon
                                    last edited by

                                    @Lindon I only skimmed the last few posts 💩

                                    Dan Korneff - Producer / Mixer / Audio Nerd

                                    1 Reply Last reply Reply Quote 0
                                    • Christoph HartC
                                      Christoph Hart
                                      last edited by

                                      if we are interested in saving lines of code my original version is precisely 1 line....

                                      But you need to ship an update in 2036 and we're all in here for the long run...

                                      LindonL 1 Reply Last reply Reply Quote 2
                                      • LindonL
                                        Lindon @Christoph Hart
                                        last edited by

                                        @Christoph-Hart said in Dates...:

                                        if we are interested in saving lines of code my original version is precisely 1 line....

                                        But you need to ship an update in 2036 and we're all in here for the long run...

                                        well you have me there...

                                        HISE Development for hire.
                                        www.channelrobot.com

                                        1 Reply Last reply Reply Quote 0
                                        • LindonL
                                          Lindon @d.healey
                                          last edited by Lindon

                                          @d-healey said in Dates...:

                                          @Dan-Korneff Why not?

                                          inline function isLeapYear(year) 
                                          {
                                              return (0 == year % 4) && (0 != year % 100) || (0 == year % 400));
                                          }
                                          

                                          except when you try this it always returns true....so it doenst work.

                                          -- oh hang on I spot a typeo in my implementation....

                                          HISE Development for hire.
                                          www.channelrobot.com

                                          LindonL 1 Reply Last reply Reply Quote 0
                                          • LindonL
                                            Lindon @Lindon
                                            last edited by Lindon

                                            Okay so whilst we await @ustk 's push here's a fix using just HISE:

                                            function isLeapYear(aYear)
                                            {
                                            	return ((0 == aYear % 4) && (0 != aYear % 100) || (0 == aYear % 400));
                                            }
                                            
                                            function daysFrom2000(aYear,aMonth,aDay)
                                            {
                                            	reg calcYear = 2000;
                                            	reg totalDays = 0;
                                            	reg leap = 0;
                                            	reg monthAmounts = [31,28,31,30,31,30,31,31,30,31,30,31];
                                            	if(aYear < calcYear)
                                            		return -1;
                                            		
                                            	if(aMonth > 2 && isLeapYear(aYear))
                                            		leap = 1;
                                            	totalDays = aDay + leap;
                                            	for(i = 0; i< aMonth-1; i++)
                                            	{
                                            		totalDays = totalDays + monthAmounts[i];
                                            	};
                                            		
                                            		
                                            	while(calcYear < aYear)
                                            	{
                                            		totalDays = totalDays + 365 + isLeapYear(calcYear);
                                            		calcYear++;
                                            	};
                                            	
                                            	return totalDays;
                                            }
                                            
                                            Console.print(daysFrom2000(2023,01,01));
                                            

                                            Obviously just doing days not microseconds

                                            HISE Development for hire.
                                            www.channelrobot.com

                                            ustkU 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            12

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.6k

                                            Posts