correct syntax of mod operation

Posted on 2013-05-28
Last Modified: 2013-06-03
4 different week(date) types
this week is the 21st week of the year: this could be week_type 1
next week: week_type: 2
following week: week_type: 3
final week: week_type:4
week after: week_type:1

what is correct syntax of mod operation in this instance
Question by:rgb192
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 110

Assisted Solution

by:Ray Paseur
Ray Paseur earned 350 total points
ID: 39203112
This is actually the 22nd week of the year. Where do you want to go from here?

<?php // RAY_temp_rgb192.php

// See:
// See:

$week_number = date('W');

Open in new window

LVL 82

Assisted Solution

hielo earned 150 total points
ID: 39203234
>>this could be week_type 1
Instead of week_types from 1...4, use week_types from 0...3.  Then the mod operation you need is:
$week_type = $week_type % 4;

If you really want to use the values 1...4, then you will need to add 1 to the result mod operation and then $week_type will always be a value between 1 and 4 (inclusive):
$week_type = ($week_type % 4) +1;

Author Comment

ID: 39203544
This is actually the 22nd week of the year. Where do you want to go from here?
want week type of month not year

by: hieloPosted on 2013-05-28 at 20:33:36ID: 39203234
$week_type = $week_type % 4;

how do I instantiate variable $week_type
LVL 110

Accepted Solution

Ray Paseur earned 350 total points
ID: 39204214
want week type of month not year
Perhaps the reason that this question is confusing goes to the number of days in a week and the number of weeks in a month.

There are 7 days in a week.  There are more than 28 days in a month.  Yet the question as written seems to assume that some modulus will give a sensible answer to the week number and the resulting week numbers will be 1,2,3,4.  To me that is illogical.  What will happen is that the modulus will cause days 1-7 to be recognized as week 0 (then you can add one) and will cause days 21-28 to be recognized as week 3 (again, you can add one).  Days 29-31, if present in the month, will be misunderstood (at least to my way of thinking).

What week number will you want to apply for today (May 29, 2013)?  Once we understand that we may be able to help you with a more consistent application of program logic.

Try installing this and running it to see what I'm talking about.  Then lets' see if we can clarify the question.
<?php // RAY_temp_rgb192.php
echo '<pre>';

$days = range(1,31);

foreach ($days as $day)
    $wom = (int)(($day-1) / 7) + 1;
    echo PHP_EOL . "DAY $day IS PART OF WEEK: $wom";

Open in new window

Thanks and regards, ~Ray

Author Closing Comment

ID: 39217976
the code without mod was easier to follow
thanks both

Featured Post

Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Build an array called $myWeek which will hold the array elements Today, Yesterday and then builds up the rest of the week by the name of the day going back 1 week.   (CODE) (CODE) Then you just need to pass your date to the function. If i…
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

696 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question