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.
    • 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
                                • d.healeyD
                                  d.healey @ustk
                                  last edited by

                                  @ustk Already has, no?

                                  Link Preview Image
                                  Commits · christophhart/HISE

                                  The open source framework for sample based instruments - Commits · christophhart/HISE

                                  favicon

                                  GitHub (github.com)

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

                                  ustkU 1 Reply Last reply Reply Quote 0
                                  • ustkU
                                    ustk @d.healey
                                    last edited by

                                    @d-healey Oh yes my mistake, was waiting for the others...

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

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

                                    22

                                    Online

                                    1.8k

                                    Users

                                    12.1k

                                    Topics

                                    105.0k

                                    Posts