28 lines
757 B
Bash
28 lines
757 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
# this just takes php's date() function as a reference to check if week of year
|
||
|
# is calculated correctly in the range from 1970 .. 2038 by brute force...
|
||
|
|
||
|
SEQ="seq"
|
||
|
SYSTEM=`uname`
|
||
|
if [ "$SYSTEM" = "Darwin" ]; then
|
||
|
SEQ="jot"
|
||
|
fi
|
||
|
|
||
|
for YEAR in {1970..2038}; do
|
||
|
for MONTH in {1..12}; do
|
||
|
DAYS=$(cal $MONTH $YEAR | egrep "28|29|30|31" |tail -1 |awk '{print $NF}')
|
||
|
for DAY in $( $SEQ $DAYS ); do
|
||
|
DATE=$YEAR-$MONTH-$DAY
|
||
|
echo -n $DATE ...
|
||
|
NODEVAL=$(node test_weekofyear.js $DATE)
|
||
|
PHPVAL=$(php -r "echo intval(date('W', strtotime('$DATE')));")
|
||
|
if [ "$NODEVAL" -ne "$PHPVAL" ]; then
|
||
|
echo "MISMATCH: node: $NODEVAL vs php: $PHPVAL for date $DATE"
|
||
|
else
|
||
|
echo " OK"
|
||
|
fi
|
||
|
done
|
||
|
done
|
||
|
done
|