// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc 

package cn.com.smartdevices.bracelet.model;

import android.content.Context;
import cn.com.smartdevices.bracelet.BraceletApp;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class SportDay
    implements Serializable
{

    private static final int ISO_FIRST_DAY_OF_WEEK = 2;
    private static final int ISO_MINIMAL_DAYS_IN_FIRST_WEEK = 4;
    private static final int US_FIRST_DAY_OF_WEEK = 1;
    private static final int US_MINIMAL_DAYS_IN_FIRST_WEEK = 1;
    private static int sFirstDayOfWeek = 0;
    private static int sMinimalDaysInFirstWeek = 0;
    private static final long serialVersionUID = 1L;
    public Calendar calendar;
    public int day;
    public int mon;
    public int year;

    public SportDay()
    {
        this(Calendar.getInstance());
    }

    public SportDay(int i, int j, int k)
    {
        year = i;
        mon = j;
        day = k;
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        calendar1.setFirstDayOfWeek(sFirstDayOfWeek);
        calendar1.setMinimalDaysInFirstWeek(sMinimalDaysInFirstWeek);
        calendar1.setTimeZone(TimeZone.getTimeZone((new StringBuilder()).append("GMT+").append(calendar1.get(15) / 1000 / 60 / 60).toString()));
        calendar = calendar1;
    }

    public SportDay(SportDay sportday)
    {
        this(sportday.year, sportday.mon, sportday.day);
    }

    public SportDay(Calendar calendar1)
    {
        year = calendar1.get(1);
        mon = calendar1.get(2);
        day = calendar1.get(5);
        calendar1.setFirstDayOfWeek(sFirstDayOfWeek);
        calendar1.setMinimalDaysInFirstWeek(sMinimalDaysInFirstWeek);
        calendar1.setTimeZone(TimeZone.getTimeZone((new StringBuilder()).append("GMT+").append(calendar1.get(15) / 1000 / 60 / 60).toString()));
        calendar = calendar1;
    }

    public static SportDay fromString(String s)
    {
        SportDay sportday;
        try
        {
            String as[] = s.split("-");
            sportday = new SportDay(Integer.parseInt(as[0]), -1 + Integer.parseInt(as[1]), Integer.parseInt(as[2]));
        }
        catch (Exception exception)
        {
            return new SportDay();
        }
        return sportday;
    }

    public static Calendar toCalenday(String s)
    {
        Calendar calendar1 = Calendar.getInstance();
        try
        {
            String as[] = s.split("-");
            int i = Integer.parseInt(as[0]);
            int j = -1 + Integer.parseInt(as[1]);
            int k = Integer.parseInt(as[2]);
            calendar1.clear();
            calendar1.set(i, j, k);
        }
        catch (Exception exception)
        {
            return calendar1;
        }
        return calendar1;
    }

    public SportDay addDay(int i)
    {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        calendar1.add(6, i);
        return new SportDay(calendar1);
    }

    public SportDay addMonth(int i)
    {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        calendar1.add(2, i);
        return new SportDay(calendar1);
    }

    public SportDay addWeek(int i)
    {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        calendar1.add(3, i);
        return new SportDay(calendar1);
    }

    public SportDay addYear(int i)
    {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        calendar1.add(1, i);
        return new SportDay(calendar1);
    }

    public boolean after(SportDay sportday)
    {
        while (year > sportday.year || year == sportday.year && (mon > sportday.mon || mon == sportday.mon && day > sportday.day)) 
        {
            return true;
        }
        return false;
    }

    public boolean before(SportDay sportday)
    {
        while (year < sportday.year || year == sportday.year && (mon < sportday.mon || mon == sportday.mon && day < sportday.day)) 
        {
            return true;
        }
        return false;
    }

    public int compare(SportDay sportday)
    {
        if (year <= sportday.year)
        {
            if (year < sportday.year)
            {
                return -1;
            }
            if (mon <= sportday.mon)
            {
                if (mon < sportday.mon)
                {
                    return -1;
                }
                if (day <= sportday.day)
                {
                    return day >= sportday.day ? 0 : -1;
                }
            }
        }
        return 1;
    }

    public boolean equals(int i, int j, int k)
    {
        return day == k && mon == j && year == i;
    }

    public boolean equals(SportDay sportday)
    {
        return day == sportday.day && mon == sportday.mon && year == sportday.year;
    }

    public boolean equals(Calendar calendar1)
    {
        return equals(calendar1.get(1), calendar1.get(2), calendar1.get(5));
    }

    public String formatString()
    {
        Date date = new Date();
        date.setYear(-1900 + year);
        date.setMonth(mon);
        date.setDate(day);
        return (new SimpleDateFormat(BraceletApp.getContext().getString(0x7f0d005d))).format(date);
    }

    public String formatStringDay()
    {
        Date date = new Date();
        date.setYear(-1900 + year);
        date.setMonth(mon);
        date.setDate(day);
        return (new SimpleDateFormat(BraceletApp.getContext().getString(0x7f0d0055))).format(date);
    }

    public String formatStringDayShort()
    {
        return (new StringBuilder()).append(1 + mon).append("/").append(day).toString();
    }

    public String getKey()
    {
        return toString();
    }

    public SportDay getMonthEndDay()
    {
        SportDay sportday = getMonthStartDay();
        SportDay sportday1 = null;
        int i = 1;
        do
        {
label0:
            {
                if (i <= 4)
                {
                    sportday1 = sportday.addDay(31 - i);
                    if (sportday1.year != year || sportday1.mon != mon)
                    {
                        break label0;
                    }
                }
                return sportday1;
            }
            i++;
        } while (true);
    }

    public SportDay getMonthStartDay()
    {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        calendar1.set(5, 1);
        return new SportDay(calendar1);
    }

    public int getWeek()
    {
        int i = calendar.get(7);
        if (i == 1)
        {
            return 6;
        } else
        {
            return i - 2;
        }
    }

    public SportDay getWeekStartDay()
    {
        Calendar calendar1 = Calendar.getInstance();
        calendar1.set(year, mon, day);
        int i = calendar1.get(7) - sFirstDayOfWeek;
        if (i < 0)
        {
            i += 7;
        }
        calendar1.add(6, -i);
        return new SportDay(calendar1);
    }

    public int offsetDay(SportDay sportday)
    {
        Calendar calendar1 = calendar;
        Calendar calendar2 = sportday.calendar;
        if (year == sportday.year)
        {
            return calendar1.get(6) - calendar2.get(6);
        } else
        {
            Calendar calendar3 = (Calendar)calendar1.clone();
            Calendar calendar4 = (Calendar)calendar2.clone();
            calendar3.clear(11);
            calendar3.clear(12);
            calendar3.clear(13);
            calendar3.clear(14);
            calendar4.clear(11);
            calendar4.clear(12);
            calendar4.clear(13);
            calendar4.clear(14);
            return (int)((calendar3.getTimeInMillis() - calendar4.getTimeInMillis()) / 0x5265c00L);
        }
    }

    public int offsetMonth(SportDay sportday)
    {
        if (year == sportday.year)
        {
            return mon - sportday.mon;
        } else
        {
            return 12 * (year - sportday.year) + (mon - sportday.mon);
        }
    }

    public int offsetWeek(SportDay sportday)
    {
        Calendar calendar1 = calendar;
        Calendar calendar2 = sportday.calendar;
        if (year == sportday.year)
        {
            return calendar1.get(3) - calendar2.get(3);
        } else
        {
            return getWeekStartDay().offsetDay(sportday.getWeekStartDay()) / 7;
        }
    }

    public String toString()
    {
        StringBuilder stringbuilder = new StringBuilder();
        stringbuilder.append(year).append("-");
        if (1 + mon < 10)
        {
            stringbuilder.append(0);
        }
        stringbuilder.append(1 + mon).append("-");
        if (day < 10)
        {
            stringbuilder.append(0);
        }
        stringbuilder.append(day);
        return stringbuilder.toString();
    }

    static 
    {
        sFirstDayOfWeek = 2;
        sMinimalDaysInFirstWeek = 4;
    }
}