SunCalc Android APP

SunCalc (Pro)
The Scientific UNit Calculator App combines the function of a spred sheet with the functions of a scientific calculator.

A unique feature of this App is the integrated possibility to convert between expressions given with different units. It does not only support the simple conversion like Inch to Meter "in:>m" from one unit to the other like many other unit conversion Apps. It also supports the conversion of complex units like Inch per hour into Meter per Second "in/h:>m/s".

Furthermore the conversion between currencies is supported (see table currencies below for supported currencies). The currencies conversion rates are loaded from a web service provided by the EZB  ( If the availability of new conversions rates is detected, you will be asked if you want to load them.You can also choose to load it directly via the menu.  The currency exchange rates provided by the EZB are defined based on the EURO. This App internally represents all currencies in EURO to. Therefore the conversion of USD int GBP runs through the steps USD->EURO->GBP.

Besides standard functions (sin, cos, tan, log, ln usw.) of a calculator, it offers the possibility to clearly arrange your calculations in a  spreadsheet.
The cells of the spreadsheet can also be used to defined your own functions, units or variables. The data entered in the spred sheet can be stored in and loaded from CSV files.

The result of your expression is incrementally calculated while you are typing. The expressions field also supports a undo and redo function. While typing the calculator will show suggestions for units and functions, which matches the currently part of the expression.

Left and right arrow buttons can be used for easily position the cursor.  Missing braces are automatically added at the beginning/end of your expression. When you press the equal button a syntax highlighting of the entered expression is performed.

You can access the values of the hardware sensors of your phone. The calculator offers special function to access them. Some special spred sheet related functions are also accessible, like sum.You can use references to other cells in your expression by entering a cell reference like B3.

It is possible to enter conditional expressions. You can also change the color of your result field and cells by using severity related functions.It supports SI base units, SI derived units, SI prefixes, IEC prefixes and other commonly used units. It also supports the conversion between these units.

It offers some special editor buttons which are represented red:

    Shift (⇧)
    Undo (⇑)
    Redo (⇓)
    Cursor Left (⇐)
    Cursor Right (⇒)
    Convert Expression (⇛)
    Evaluate (=)

The shift button (⇧) will allow to toggle the keyboard between upper and lower case or will switch the operation shown on operation buttons. E.g. it will switch the function shown on the sin operation button to sinh. Pressing the button long will lock it.

It supports unlimited depth calculations with brackets. Missing closing braces are automatically added at the end of the expression if needed. This is also true for opening braces, they will also be added implicitly at the beginning of the expression. So typing 1+2)*3 will be internally converted to (1+2)*3 and the value 9 is shown.

The calculator provides a matrix  of cells (the cells are named A-T/1-19) to store multiple expressions/definitions/variables or functions. Pressing the cell button (initial label A1) will switch to the cell view.  You can  also navigate to the cell view by pressing the menu button, views... and than cell. You can also fling through the different view provided by this app.

In  the cell view you can select other cells. If you want to reference a different cell in your expression this can be done by making a long press in the cell. You can also type in the cell name e.g. B2 if you want to reference the content of cell B2. 

Pressing the CE button will clear the expression field.
The left (⇐) arrow and right (⇒) arrow buttons can be used to move the cursor within the current expression. The up (⇑) and down (⇓) arrow buttons can be used to perform undo or redo operations.

Besides normal calculation operation this calculator offers the ability to perform conversion between different unit representations. E.g. to convert a temperature given in  Fahrenheit to Celsius.  It is also supports more complex conversions like 10km/h into 10m/s. Pressing the conversion (⇛) button will convert the expression on the left side based on the expression represented on the right side.

Pressing the assignment (=) button will create a formatted representation of the expression and shows it in the expression field.
The trigonometric functions can be performed in one of the following three angular dimensions modes:

    RAD (2π)
    DEG (360°)
    GRAD (400°)

In order to change the degree mode press the menu button and select "Preferences". Within the preference screen you can select the degree mode and change it. The preferences screen also allows the definition, the number of fraction and integer digits. Please remember that the calculator uses java decimal values for its base calculation, which have a limited precision.

The calculator supports different views which can be easily changed. There is a standard keyboard which is structured like common calculators. There is a second keyboard view (QWERTy) which can be used to quickly enter the desired units. The third view is the cell view where all stored values are shown. A fourth view shows all supported units and functions. In order to change between these views you can used two mechanisms. Either perform a fling (right or left) or press the menu button and then select the "Views..." item. If you are in the cell view, you will have to perform the fling on the result or expression field.

The calculator support different screen-sizes for mobile cell phones and tablets. The appropriate layout is chosen for you automatically.

It is also possible to define your own specific constants or units. By entering DEF("X",2s) or "x"=2s you define the Unit X which is defined to be 2s. You should use the storage cells function of this calculator for the definition of a new unit or constant. After you have defined X you can enter 20s⇛X. You will get the result 10X.

If you want to refresh a certain calculation or the output of a sensor periodically, so you can use the refresh function.
Interval: Duration between repetitions (Default 1s)
Repetitions: Number of repetitions which should be performed (Default unlimited)

The expression  gravity() refresh(3) will output the gravitation every three seconds.

The expression  gravity() refresh(4,6) will output the gravitation every 4 seconds for six times.

If you want to output a sound, you can use the sound(volume, duration, frequency, [samples}*). This function has the following arguments:

Volume: 0-1.0 (Default 0.3)
Duration: In seconds. (Default 1s)
Frequency: 1-24.000.  (Default 300Hz)
Samples: 0-1.0. The highest frequency decreases with the number of samples which should be played. Inn case of two samples the highest frequence is 24.000Hz. In case of four the highest frequency is 12.000Hz. (Default 1.0,-1.0)

SI base units:

Description Unit
Meter       m
Kilogram    kg
Second      s
Ampere      A
Kelvin      K
Candela     cd
Mole        mol

SI multiples prefix:

Description Unit Value
Yotta       Y    1024
Zeta        Z    1021
Exa         E    1018
Peta        P    1015
Tera        T    1012
Giga        G    109
Mega        M    106
Kilo        k    103
Hekto       h    102
Deka        da   10

SI fraction prefix:

Description Unit Value
Yokto       y    10-24
Zepto       z    10-21
Atto        a    10-18
Femto       f    10-15
Piko        p    10-12
Nano        n    10-9
Mikro       µ    10-6
Milli       m    10-3
Zenti       c    10-2
Dezi        d    10-1

IEC prefix:

Description  Unit  Value
Kibi         Ki    210
Mibi         Mi    220
Gibi         Gi    230
Tibi         Ti    240
Exbi         Ei    250
Zebi         Zi    260
Yebi         Yi    270

SI derived units:

Description  Unit  Value
Hertz        hz    s-1
Radian       rad   m/m
Steradian    sr    m2/m2
Newton       N     kgm/s2
Pascal       Pa    kg/ms2
Joule        J     kgm²/s²
Watt         W     kgm²/s³
Coulomb      C     sA
Volt         V     kgm²/s³A
Farad        F     s4⋅A2/kgm²
Ohm          Ω|ohm kgm²/s³A²
Siemens      S     s³A²/kgm²
Weber        Wb    kgm2/s²A
Tesla        T     kg/s²A
Henry        H     kgm²/s²A
°Celsius     °C
Lumen        lm    cd
Lux          lx    cd/m²
Becquerel    Bq    s-1
Gray         Gy    m²/s²
Siever       Sv    m²/s²
Katal        kat   mol/s
Oersted      Oe    79.57747A/m
Stilb        sb    10000 cd/m²
Phot         px    10000 lx


Description Unit Value
Minute      min  60s
Hour        h    3600s
Day         d    86400s


Description Unit
Fahrenheit  °F
Rankine     °Ra
Rømer       °Rø
Réaumur     °R
Delisle     °De


Description Unit
Byte        B|byte
Bit         b

Commonly used binary constructs:

Common used Unit SI-Representation
Kbit             Kibit
Mbit             Mibit
Gbit             Gibit
Tbit             Tibit
Ebit             Eibit
Ybit             Yibit
Zbit             Zibit   
KB|Kbyte         KiB
MB|Mbyte         MiB
GB|Gbyte         GiB
TB|Tbyte         TiB
EB|Ebyte         EiB
YB|Ybyte         YiB
ZB|Zbyte         ZiB

Other commonly used units:

Descr.    Unit       Value
Stokes    stoke      m²/s10000
Foot      ft         0.3048m
Inch      in         1ft/12
Mile      mile|mi    5280ft
Nautical  nmi        1852m
Milli     milli-inch 0.001in
Yard      yd         3ft
Micron    micron     0.000001m
Parsec    pc         3.085678E16m
Astronom. ua|au|AU   149597871m
Angstrom  Ang        10-10m
Point     pt         1/72in
Pica      pica       1/6in
Pound     lbm        453.59237g
Carat     carat      0.2g
Gravity   G          9.80665m/s²
Light     c          299792458m/s
Pound     lb         lbmG
Calorie   cal        4.1868J
Kilo      Cal        1000cal
Electron  eV         1.602177 10-19J
Horse     hp|PS      735.49875W
Bar       bar        N/m²
Pascal    Pa         N/m²
Atmosph.  atm        1.01325E5N/m²
Liter     L          0.001m³
Pint      dpint      0.5506105L
Quart     dgt        2dpint
Acre      acre       4046.8m²
Hectare   ha         1000m²
Barrel    barrel     158.9873L
Peck      pk         8.809768L
oz        Ounce       28.349523125g
yd        Yard       0.9144m
PI        π          3.141592...
E         e          2.718281...

The following trigonometric functions are supported:

Description          Expression
Sinus                sin
Cosinus              cos
Tanges               tan
Sinus hyperbolicus   sinh
Cosinus hyperbolicus cosh
Tanges hyperbolicus  tanh
Arcus sinus          asin
Arcus cosinus        acos
Arcus tanges         atan

Arithmetic Functions:

Description            Expression
Radic                  √
Power                  ^|

Division               /
Multiplication         *
Addition               +
Subtraction           -
Logarithm to base x  logx
Natural logarithm    ln
Logarithm to base 2  lb
Logarithm to base 10 lg

Spreadsheet related Functions:

Description             Expression

Sum                                         SUM(<CELL-REF>:<CELL-REF>)
Constant/Unit                       DEF("<NAME>",<Value>)
Average                                  AVG(<CELL-REF>:<CELL-REF>)
Maximum                               MAX(<CELL-REF>:<CELL-REF>)
Minimum                               MIN(<CELL-REF>:<CELL-REF>)
Condition                               IF(<Condition>,<Then>,<Else>)

Functions to change the Color:

Description             Expression
Red/Critical            CRITICAL()
Orange/Major            MAJOR()
Yellow/Minor            MINOR()
Blue/Warning            WARNING()
Green/Normal            NORMAL()

Hardware Sensor related functions:

Description              Expression
Proximity                proximity()
Temperature              temperature()
Ambient Temperature      ambient_temperature()
Pressure                 pressure()
Light                    light()

Gyroscope                gyroscope()
-X-Axis         gyroscopex()
Gyroscope-Y-Axis         gyroscopey()
Gyroscope-Z-Axis         gyroscopez()
Magnetic Field           magnetic()
Magnetic Field-X-Axis    magneticx()
Magnetic Field-Y-Axis    magneticy()
Magnetic Field-Z-Axis    magneticz()
Accelerometer             accelerometer()
Accelerometer-X-Axis      accelerometerx()
Accelerometer-Y-Axis      accelerometery()
Accelerometer-Z-Axis      accelerometerz()
Gravity                   g
-X-Axis            gravityx()
-Y-Axis            gravityy()
-Z-Axis            gravityz()
Lin.-Accelerometer        linear_accelerometer()
Lin.-Accelerometer-X-Axis linear_accelerometerx()
Lin.-Accelerometer-Y-Axis linear_accelerometery()
Lin.-Accelerometer-Z-Axis liaear_accelerometerz()

Miscellaneous Functions
Description                       Expression
Sound generation                   sound(volume, duration, frequency,[smaples])
Refresh                            refresh(Seconds, repetitions)