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 @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
                                          • ustkU
                                            ustk @Lindon
                                            last edited by

                                            @Lindon the push’s been made, Christoph should merge soon

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

                                            d.healeyD 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            20

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.5k

                                            Posts