comment the numbering scheme

pull/77/merge^2
Denis 10 years ago
parent af3b18f518
commit 821a7db8f4

@ -25,6 +25,7 @@ import android.text.format.DateFormat;
import org.isoron.uhabits.R; import org.isoron.uhabits.R;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.Locale; import java.util.Locale;
@ -155,17 +156,50 @@ public class DateHelper
} }
/**
* Throughout the code, it is assumed that the weekdays are numbered
* from 0 (Saturday) to 6 (Friday).
*
* see https://github.com/iSoron/uhabits/issues/74
*
* In the Java Calendar they are numbered from 1 (Sunday) to 7 (Saturday)
*
* <table>
* <thead>
* <tr><th>day</th><th>dayNumber</th><th>wdaysIndex</th></tr>
* <thead>
* <tbody>
* <tr><td>Su</td><td>1</td><td>1</td></tr>
* <tr><td>Mo</td><td>2</td><td>2</td></tr>
* <tr><td>Tu</td><td>3</td><td>3</td></tr>
* <tr><td>We</td><td>4</td><td>4</td></tr>
* <tr><td>Th</td><td>5</td><td>5</td></tr>
* <tr><td>Fr</td><td>6</td><td>6</td></tr>
* <tr><td>Sa</td><td>7</td><td>0</td></tr>
* </tbody>
* </table>
*
* So we have {@code wdaysIndex = dayNumber % 7}
*
* @return array with names from Saturday to Friday according to the current locale
*
* @see #getWeekday(long)
* @see java.util.Calendar#SUNDAY
*
*/
public static String[] getDayNames(int format) public static String[] getDayNames(int format)
{ {
String[] wdays = new String[7]; String[] wdays = new String[7];
GregorianCalendar day = new GregorianCalendar(); Calendar day = new GregorianCalendar();
day.set(GregorianCalendar.DAY_OF_WEEK, 0); // we start with Saturday
day.set(GregorianCalendar.DAY_OF_WEEK, Calendar.SATURDAY);
for (int i = 0; i < 7; i++) for (int i = 0; i < wdays.length; i++)
{ {
wdays[i] = day.getDisplayName(GregorianCalendar.DAY_OF_WEEK, format, wdays[i] = day.getDisplayName(GregorianCalendar.DAY_OF_WEEK, format,
Locale.getDefault()); Locale.getDefault());
// advance in time by one day
day.add(GregorianCalendar.DAY_OF_MONTH, 1); day.add(GregorianCalendar.DAY_OF_MONTH, 1);
} }

Loading…
Cancel
Save