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 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鈥檚 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

                                19

                                Online

                                1.7k

                                Users

                                11.9k

                                Topics

                                103.5k

                                Posts