#!/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