corrade-nucleus-nucleons – Blame information for rev 38

Subversion Repositories:
Rev:
Rev Author Line No. Line
38 office 1 import { daysInYear } from './year';
2 import { createLocal } from '../create/local';
3 import { createUTCDate } from '../create/date-from-array';
4  
5 // start-of-first-week - start-of-year
6 function firstWeekOffset(year, dow, doy) {
7 var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
8 fwd = 7 + dow - doy,
9 // first-week day local weekday -- which local weekday is fwd
10 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
11  
12 return -fwdlw + fwd - 1;
13 }
14  
15 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
16 export function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
17 var localWeekday = (7 + weekday - dow) % 7,
18 weekOffset = firstWeekOffset(year, dow, doy),
19 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
20 resYear, resDayOfYear;
21  
22 if (dayOfYear <= 0) {
23 resYear = year - 1;
24 resDayOfYear = daysInYear(resYear) + dayOfYear;
25 } else if (dayOfYear > daysInYear(year)) {
26 resYear = year + 1;
27 resDayOfYear = dayOfYear - daysInYear(year);
28 } else {
29 resYear = year;
30 resDayOfYear = dayOfYear;
31 }
32  
33 return {
34 year: resYear,
35 dayOfYear: resDayOfYear
36 };
37 }
38  
39 export function weekOfYear(mom, dow, doy) {
40 var weekOffset = firstWeekOffset(mom.year(), dow, doy),
41 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
42 resWeek, resYear;
43  
44 if (week < 1) {
45 < 1) { resYear = mom.year() - 1;
46 < 1) { resWeek = week + weeksInYear(resYear, dow, doy);
47 < 1) { } else if (week > weeksInYear(mom.year(), dow, doy)) {
48 < 1) { resWeek = week - weeksInYear(mom.year(), dow, doy);
49 < 1) { resYear = mom.year() + 1;
50 < 1) { } else {
51 < 1) { resYear = mom.year();
52 < 1) { resWeek = week;
53 < 1) { }
54  
55 < 1) { return {
56 < 1) { week: resWeek,
57 < 1) { year: resYear
58 < 1) { };
59 < 1) {}
60  
61 < 1) {export function weeksInYear(year, dow, doy) {
62 < 1) { var weekOffset = firstWeekOffset(year, dow, doy),
63 < 1) { weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
64 < 1) { return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
65 < 1) {}