Modulus calculation to find decreasing Year-Quarter

In summary, the conversation is about trying to find a math function to decrement the current year/quarter in a software UI. The goal is to have the function wrap around back to the start, and the user is trying to use a Modulus operator to achieve this. They are looking for a single calculation that works for all quarters and are trying to avoid using an IF statement. The conversation also includes a working version for incrementing and a suggested formula for stepping back multiple quarters.
  • #1
jjc
21
0
I am feeling silly because I can't seem to crack this, but maybe I have been staring at it too long. I am trying to find a math function that will yield a single unit decrement of the currently defined Year/Quarter. This is a software UI thing: I am trying to create a script to decrement, in single steps, the current Year/Quarter shown. The issue is that it needs to wrap around back to the start. Hence I was trying to use a Modulus operator.

Here's what I need, decrementing the current quarter:
Q1 -> Q4 (of the prior year)
Q2 -> Q1
Q3 -> Q2
Q4 -> Q3

I can get three of the four conditions via mod(), but I can't seem to work out one calculation that works for all. Adding another number somewhere is fine; I am really just trying to do this without having to also include an IF() statement to look for the Q1->Q4 condition.

It doesn't have to deal with the "Q" string part; I already am splitting the string up and just handling the numeric portion separately. I then rebuild the string. Same with the year; that is handled in a separate step as well. I just need to calculate the quarter number, and I am trying to save 1 line of code. :)

And if anyone cares, this is being done in FileMaker 12 scripting language. Has most of the modern conveniences, but not quite as flexible as most real full-blown languages. This is what I have currently (yields 3 correct results; slightly modified from actual code to make it more readable):

...
res = Mod ( currQnum - 1 ; 4 );
return res;

Here is my working version for incrementing (modified again; Year-wrap around IS done with an IF statement, but not the Qrtr number):


...
newQ = Mod ( currQNum ; 4 ) + 1 ;
...
return newYr & " Q" & newQ

Thanks
Justin
 
Mathematics news on Phys.org
  • #2
The usual trick is to add the base first to make sure it doesn't go negative: Mod(val+4-1; 4)
 
  • #3
It seems like it wouldn't quite work in this situation; I could still end up with a zero result of the mod(); I want a result from 1 through 4. Val = 1 ; Mod (1 + 4 - 1 ; 4 ) = Mod (4) = 0. And if I add 4 to that, it works for that one, but not the others. I have thought of doing a subtraction ( 4 - Mod(...) ) but that just inverts the order of results, yielding f(3) = 1. But it does work for f(1).
 
  • #4
jjc said:
It seems like it wouldn't quite work in this situation; I could still end up with a zero result of the mod(); I want a result from 1 through 4. Val = 1 ; Mod (1 + 4 - 1 ; 4 ) = Mod (4) = 0. And if I add 4 to that, it works for that one, but not the others. I have thought of doing a subtraction ( 4 - Mod(...) ) but that just inverts the order of results, yielding f(3) = 1. But it does work for f(1).
OK, you didn't say the qtr numbers are in the range 1-4. I assumed 0-3. That's easy: subtract 1 at the start and add it back at the end. So to step back n quarters:
1+Mod(4*n-1+x-n; 4)
 
  • #5
Yeah, I didn't explicitly mention it but my sample data showed it.

Thanks for this function. I will assume that 'x' in your formula is the starting quarter number. n = 1 all the time, in my case.

So that essentially reduces the formula to:
1+Mod(x+2 ; 4 )

When I work through it in my head it works! Now to test it... :)

Thanks!
 

1. What is modulus calculation?

Modulus calculation is a mathematical operation that finds the remainder when one number is divided by another. It is represented by the % symbol in most programming languages.

2. How can modulus calculation help find decreasing Year-Quarter?

By using the modulus calculation on a given set of numbers representing Year-Quarter, we can identify the decreasing trend by looking at the remainder values. If the remainder values are decreasing, it indicates that the Year-Quarter values are also decreasing.

3. How do you perform modulus calculation in a scientific context?

In a scientific context, modulus calculation is performed using the same formula as in mathematics, which is: a % b = a - (b * floor(a/b)). The only difference is that the numbers used in scientific calculations are typically much larger and more complex.

4. What is the significance of finding decreasing Year-Quarter in a scientific study?

Finding a decreasing trend in Year-Quarter values can provide valuable insights in various scientific studies. It can help identify seasonal patterns, changes in environmental conditions, or the effects of certain factors over time.

5. What factors can affect the accuracy of modulus calculation in finding decreasing Year-Quarter?

The accuracy of modulus calculation in finding decreasing Year-Quarter can be affected by factors such as measurement errors, missing data, or outliers in the dataset. It is important to carefully analyze the data and account for any potential factors that may affect the results.

Similar threads

  • General Math
Replies
9
Views
1K
  • General Math
Replies
2
Views
2K
  • Introductory Physics Homework Help
Replies
8
Views
2K
Replies
4
Views
1K
  • Precalculus Mathematics Homework Help
Replies
4
Views
1K
  • Electrical Engineering
Replies
14
Views
2K
  • Introductory Physics Homework Help
Replies
11
Views
762
Replies
20
Views
3K
  • Engineering and Comp Sci Homework Help
Replies
14
Views
2K
  • Introductory Physics Homework Help
Replies
2
Views
1K
Back
Top