Ir para conteúdo
  • Cadastre-se

Willian Resplandes

Membros
  • Total de ítens

    83
  • Registro em

  • Última visita

Posts postados por Willian Resplandes

  1. Boa noite amigos, estou inserindo a data de inicio e de final do movimento do sped fiscal fazendo uso do acbrframework com o Jacbr mas a data está diminuindo um dia exemplo se eu selecionar dia 01122016 no arquivo aparece 30112016 :/

    Alguém já passou por isso ?

     

    //Classe OleDate do JAcbr
    
    package jACBrFramework;
    
    //<editor-fold defaultstate="collapsed" desc="Disclaimer">
    // OleDate.java
    //
    // Written by Sridhar S Madhugiri
    // of Microsoft Technical Support, Developer Support
    // Copyright (c) 1997 Microsoft Corporation. All rights reserved.
    //
    // this class extends Date to convert support Conversion from/to
    // OLE Data type DATE
    //
    // OleData type DATE is actually represented as a double.
    //
    // To convert from DATE to Date call the setDate(double) member.
    // This function does not do a lot of error checking about valid ranges.
    // It converts the value passed in to year, month, date, hour,
    // minute, second and calls the Date functions to set the values in
    // the object.
    //
    // To convert from Date to DATE call toDouble() member. This returns
    // a double that has the date value in the correct format.
    //
    // http://support.microsoft.com/kb/169795
    //</editor-fold>
    import java.util.Calendar;
    import java.util.Date;
    
    @SuppressWarnings({"unused", "deprecation"})
    public class OleDate extends Date {
        //<editor-fold defaultstate="collapsed" desc="Fields">
    
        // source code copied from MFC 4.21 and modified
        private static double HALF_SECOND = (1.0 / 172800.0);
    
        // source code copied from MFC 4.21 and modified
        private static int rgMonthDays[] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};
    
        //</editor-fold>
        //<editor-fold defaultstate="collapsed" desc="Constructor">
        public OleDate(Date date) {
            super(date.getTime());
        }
    
        public OleDate(double date) {
            setDate(date);
        }
    
        //</editor-fold>
        //<editor-fold defaultstate="collapsed" desc="Methods">
        //<editor-fold defaultstate="collapsed" desc="Static Methods">
        public static double toOADate(Date date) {
            if (date == null) {
                return 0d;
            }
            OleDate oleDate = new OleDate(date);
            return oleDate.toDoubles();
        }
    
        public static Date fromOADate(double value) {
            OleDate oleDate = new OleDate(value);
            return oleDate.toDates();
        }
    
        //</editor-fold>
        //<editor-fold defaultstate="collapsed" desc="OleDate Conversion Methods">
        @SuppressWarnings("empty-statement")
        private void setDate(double dtSrc) {
            // source code copied from MFC 4.21 and modified
            long nDaysAbsolute; // Number of days since 1/1/0
            long nSecsInDay; // Time in seconds since midnight
            long nMinutesInDay; // Minutes in day
            long n400Years; // Number of 400 year increments since 1/1/0
            long n400Century; // Century within 400 year block (0,1,2 or 3)
            long n4Years; // Number of 4 year increments since 1/1/0
            long n4Day; // Day within 4 year block
            // (0 is 1/1/yr1, 1460 is 12/31/yr4)
            long n4Yr; // Year within 4 year block (0,1,2 or 3)
            boolean bLeap4 = true; // TRUE if 4 year block includes leap year
    
            // values in terms of year month date.
            int tm_sec;
            int tm_min;
            int tm_hour;
            int tm_mday;
            int tm_mon;
            int tm_year;
    
            double dblDate = dtSrc; // temporary serial date
            // If a valid date, then this conversion should not overflow
    
            // Round to the second
            dblDate += ((dtSrc > 0.0) ? HALF_SECOND : -HALF_SECOND);
            // Add days from 1/1/0 to 12/30/1899
            nDaysAbsolute = (long) dblDate + 693959L;
            dblDate = Math.abs(dblDate);
            nSecsInDay = (long) ((dblDate - Math.floor(dblDate)) * 86400.);
            // Leap years every 4 yrs except centuries not multiples of 400.
            n400Years = nDaysAbsolute / 146097L;
            // Set nDaysAbsolute to day within 400-year block
            nDaysAbsolute %= 146097L;
            // -1 because first century has extra day
            n400Century = (nDaysAbsolute - 1) / 36524L;
            // Non-leap century
            if (n400Century != 0) {
                // Set nDaysAbsolute to day within centurY
                nDaysAbsolute = (nDaysAbsolute - 1) % 36524L;
                // +1 because 1st 4 year increment has 1460 days
                n4Years = (nDaysAbsolute + 1) / 1461L;
                if (n4Years != 0) {
                    n4Day = (nDaysAbsolute + 1) % 1461L;
                } else {
                    bLeap4 = false;
                    n4Day = nDaysAbsolute;
                }
            } else {
                // Leap century - not special case!
                n4Years = nDaysAbsolute / 1461L;
                n4Day = nDaysAbsolute % 1461L;
            }
            if (bLeap4) {
                // -1 because first year has 366 days
                n4Yr = (n4Day - 1) / 365;
                if (n4Yr != 0) {
                    n4Day = (n4Day - 1) % 365;
                }
            } else {
                n4Yr = n4Day / 365;
                n4Day %= 365;
            }
            tm_year = (int) (n400Years * 400 + n400Century * 100 + n4Years * 4 + n4Yr);
            // Handle leap year: before, on, and after Feb. 29.
            if (n4Yr == 0 && bLeap4 && n4Day == 59) {
                /* Feb. 29 */
                tm_mon = 2;
                tm_mday = 29;
            } else {
                if (n4Yr == 0 && bLeap4 && n4Day >= 59) {
                    --n4Day;
                }
                // Make n4DaY a 1-based day of non-leap year and compute
                // month/day for everything but Feb. 29.
                ++n4Day;
                // Month number always >= n/32, so save some loop time */
                for (tm_mon = (int) ((n4Day >> 5) + 1); n4Day > rgMonthDays[tm_mon]; tm_mon++);
                tm_mday = (int) (n4Day - rgMonthDays[tm_mon - 1]);
            }
    
            if (nSecsInDay == 0) {
                tm_hour = tm_min = tm_sec = 0;
            } else {
                tm_sec = (int) (nSecsInDay % 60L);
                nMinutesInDay = nSecsInDay / 60L;
                tm_min = (int) (nMinutesInDay % 60);
                tm_hour = (int) (nMinutesInDay / 60);
            }
            Calendar c = Calendar.getInstance();
            c.set(Calendar.YEAR, tm_year);
            c.set(Calendar.MONTH, tm_mon - 1);
            c.set(Calendar.DAY_OF_MONTH, tm_mday);
            c.set(Calendar.HOUR_OF_DAY, tm_hour);
            c.set(Calendar.MINUTE, tm_min);
            c.set(Calendar.SECOND, tm_sec);
            setTime(c.getTime().getTime());
    //        setYear(tm_year - 1900);
    //        setMonth(tm_mon - 1);
    //        super.setDate(tm_mday); // resolves ambiguity
            // between OleDate.setDate and
            // java.util.Date.setDate
    //        setHours(tm_hour);
    //        setMinutes(tm_min);
    //        setSeconds(tm_sec);
        }
    //</editor-fold>
    
        public Date toDates() {
            Date date = new Date();
            date.setTime(this.getTime());
            return date;
        }
    
        public double toDoubles() {
            // source code copied from MFC 4.21 and modified.
            Calendar c = Calendar.getInstance();
            c.setTime(this);
            int wYear = c.get(Calendar.YEAR);
            int wMonth = c.get(Calendar.MONTH);
            int wDay = c.get(Calendar.DAY_OF_MONTH);
            int wHour = c.get(Calendar.HOUR_OF_DAY);
            int wMinute = c.get(Calendar.MINUTE);
            int wSecond = c.get(Calendar.SECOND);
            //  Check for leap year and set the number of days in the month
            boolean bLeapYear = ((wYear & 3) == 0) && ((wYear % 100) != 0 || (wYear % 400) == 0);
            // Cache the date in days and time in fractional days
            long nDate;
            double dblTime;
            //It is a valid date; make Jan 1, 1AD be 1
            nDate = wYear * 365L + wYear / 4 - wYear / 100 + wYear / 400 + rgMonthDays[wMonth - 1] + wDay;
            //  If leap year and it's before March, subtract 1:
            if (wMonth >= 2 && bLeapYear) {
                --nDate;
            }
    
            //  Offset so that 12/30/1899 is 0
            nDate -= 693959L;
    
            dblTime = (((long) wHour * 3600L)
                    + // hrs in seconds
                    ((long) wMinute * 60L)
                    + // mins in seconds
                    ((long) wSecond)) / 86400.;
    
            double dtDest = (double) nDate
                    + ((nDate >= 0) ? dblTime : -dblTime);
    
            return dtDest;
        }
    }
    

     

    Sped Fiscal 20122016.txt

  2. Bom dia amigos estou com um problema ao usar o componete ACBrBoletoFCQuick o mesmo ao complilar a app da o seguinte erro [dcc32 Error] qrexport.pas(999): E2003 Undeclared identifier: 'ThousandSeparator' alguem pode me ajudar por gentileza ? Sou novo com Delphi..

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.