Your complication looks (and is) quite complicated. Here's a simpler approach using DayofYear, with some bonus information thrown in.
As inferred from your last paragraph remark, the calculation gives the week which has fully ended, i.e. on Saturday it will 9, 4, and on Sunday 10,3. It should be easily adjustable for other requirements.
startDate = "1.4.2012" ; // sample data
isToday = Get ( CurrentDate ) ; // control data
dayNumEndFiscalQ = DayOfYear ( date ( month ( startDate ) + 3 ; 0 ; year ( startDate ) ) ) ;
dayNumStart = DayOfYear ( startDate ) ;
dayNumToday = DayOfYear ( isToday ) ;
daysInFiscalQ = dayNumEndFiscalQ - dayNumStart + 1 ;
daysElapsed = dayNumToday - dayNumStart ;
weeksElapsed = Int ( daysElapsed / 7 ) ;
weeksRemaining = 13 - weeksElapsed
"Week " & weeksElapsed & ", " & weeksRemaining & " remaining" & " (days elapsed: " & daysElapsed & ", days remaining: " & daysInFiscalQ - daysElapsed
the number of weeks elapsed this fiscal quarter
You need to define "elapsed week". See the help on WeekOfYear() and WeekOfYearFiscal() functions.
StartingDate = [auto-enter data, developer manually sets date in field options. In this solution, StartingDate is 4/1/2012]
Is this ever going to change? If not, it would be more efficient to use either a one-record Preferences table or a global field, instead of replicating the same data in every record.