Averages/Mean time of day: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
Thundergnat (talk | contribs) m (Automated syntax highlighting fixup (second round - minor fixes)) |
||
Line 1: | Line 1: | ||
{{task|Date and time}} |
{{task|Date and time}} |
||
;Task |
|||
{{task heading}} |
|||
A particular activity of bats occurs at these times of the day: |
A particular activity of bats occurs at these times of the day: |
||
Line 21: | Line 21: | ||
=={{header|11l}}== |
=={{header|11l}}== |
||
{{trans|Python}} |
{{trans|Python}} |
||
<syntaxhighlight lang=11l>F mean_angle(angles) |
<syntaxhighlight lang="11l">F mean_angle(angles) |
||
V x = sum(angles.map(a -> cos(radians(a)))) / angles.len |
V x = sum(angles.map(a -> cos(radians(a)))) / angles.len |
||
V y = sum(angles.map(a -> sin(radians(a)))) / angles.len |
V y = sum(angles.map(a -> sin(radians(a)))) / angles.len |
||
Line 49: | Line 49: | ||
{{libheader|Action! Tool Kit}} |
{{libheader|Action! Tool Kit}} |
||
{{libheader|Action! Real Math}} |
{{libheader|Action! Real Math}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="action!">INCLUDE "H6:REALMATH.ACT" |
||
DEFINE PTR="CARD" |
DEFINE PTR="CARD" |
||
Line 146: | Line 146: | ||
=={{header|Ada}}== |
=={{header|Ada}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="ada">with Ada.Calendar.Formatting; |
||
with Ada.Command_Line; |
with Ada.Command_Line; |
||
with Ada.Numerics.Elementary_Functions; |
with Ada.Numerics.Elementary_Functions; |
||
Line 233: | Line 233: | ||
=={{header|AutoHotkey}}== |
=={{header|AutoHotkey}}== |
||
{{works with|AutoHotkey 1.1}} |
{{works with|AutoHotkey 1.1}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="autohotkey">MsgBox, % "The mean time is: " MeanTime(["23:00:17", "23:40:20", "00:12:45", "00:17:19"]) |
||
MeanTime(t, x=0, y=0) { |
MeanTime(t, x=0, y=0) { |
||
Line 258: | Line 258: | ||
=={{header|AWK}}== |
=={{header|AWK}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="awk">#!/usr/bin/awk -f |
||
{ |
{ |
||
c = atan2(0,-1)/(12*60*60); |
c = atan2(0,-1)/(12*60*60); |
||
Line 277: | Line 277: | ||
=={{header|BBC BASIC}}== |
=={{header|BBC BASIC}}== |
||
{{works with|BBC BASIC for Windows}} |
{{works with|BBC BASIC for Windows}} |
||
<syntaxhighlight lang=bbcbasic> nTimes% = 4 |
<syntaxhighlight lang="bbcbasic"> nTimes% = 4 |
||
DATA 23:00:17, 23:40:20, 00:12:45, 00:17:19 |
DATA 23:00:17, 23:40:20, 00:12:45, 00:17:19 |
||
Line 322: | Line 322: | ||
=={{header|C}}== |
=={{header|C}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="c">#include<stdlib.h> |
||
#include<math.h> |
#include<math.h> |
||
#include<stdio.h> |
#include<stdio.h> |
||
Line 403: | Line 403: | ||
=={{header|C sharp|C#}}== |
=={{header|C sharp|C#}}== |
||
<syntaxhighlight lang=csharp>using System; |
<syntaxhighlight lang="csharp">using System; |
||
using System.Collections.Generic; |
using System.Collections.Generic; |
||
using System.Linq; |
using System.Linq; |
||
Line 471: | Line 471: | ||
=={{header|C++}}== |
=={{header|C++}}== |
||
<syntaxhighlight lang=cpp>#include <iomanip> |
<syntaxhighlight lang="cpp">#include <iomanip> |
||
#include <iostream> |
#include <iostream> |
||
#include <vector> |
#include <vector> |
||
Line 542: | Line 542: | ||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |
||
{{trans|Echo Lisp}} |
{{trans|Echo Lisp}} |
||
<syntaxhighlight lang=lisp>;; * Loading the split-sequence library |
<syntaxhighlight lang="lisp">;; * Loading the split-sequence library |
||
(eval-when (:compile-toplevel :load-toplevel :execute) |
(eval-when (:compile-toplevel :load-toplevel :execute) |
||
(ql:quickload '("split-sequence"))) |
(ql:quickload '("split-sequence"))) |
||
Line 590: | Line 590: | ||
=={{header|D}}== |
=={{header|D}}== |
||
{{trans|Python}} |
{{trans|Python}} |
||
<syntaxhighlight lang=d>import std.stdio, std.range, std.algorithm, std.complex, std.math, |
<syntaxhighlight lang="d">import std.stdio, std.range, std.algorithm, std.complex, std.math, |
||
std.format, std.conv; |
std.format, std.conv; |
||
Line 635: | Line 635: | ||
{{libheader| System.Math}} |
{{libheader| System.Math}} |
||
{{Trans|Go}} |
{{Trans|Go}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="delphi"> |
||
program Averages_Mean_time_of_day; |
program Averages_Mean_time_of_day; |
||
Line 693: | Line 693: | ||
end.</syntaxhighlight> |
end.</syntaxhighlight> |
||
=={{header|EchoLisp}}== |
=={{header|EchoLisp}}== |
||
<syntaxhighlight lang=scheme> |
<syntaxhighlight lang="scheme"> |
||
;; string hh:mm:ss to radians |
;; string hh:mm:ss to radians |
||
(define (time->radian time) |
(define (time->radian time) |
||
Line 719: | Line 719: | ||
=={{header|Erlang}}== |
=={{header|Erlang}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="erlang"> |
||
-module( mean_time_of_day ). |
-module( mean_time_of_day ). |
||
-export( [from_times/1, task/0] ). |
-export( [from_times/1, task/0] ). |
||
Line 759: | Line 759: | ||
=={{header|Euphoria}}== |
=={{header|Euphoria}}== |
||
{{works with|OpenEuphoria}} |
{{works with|OpenEuphoria}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="euphoria"> |
||
include std/console.e |
include std/console.e |
||
include std/math.e |
include std/math.e |
||
Line 836: | Line 836: | ||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |
||
<syntaxhighlight lang=fsharp>open System |
<syntaxhighlight lang="fsharp">open System |
||
open System.Numerics |
open System.Numerics |
||
Line 862: | Line 862: | ||
=={{header|Factor}}== |
=={{header|Factor}}== |
||
<syntaxhighlight lang=factor>USING: arrays formatting kernel math math.combinators |
<syntaxhighlight lang="factor">USING: arrays formatting kernel math math.combinators |
||
math.functions math.libm math.parser math.trig qw sequences |
math.functions math.libm math.parser math.trig qw sequences |
||
splitting ; |
splitting ; |
||
Line 895: | Line 895: | ||
=={{header|Fortran}}== |
=={{header|Fortran}}== |
||
{{works with|gfortran 5.1.0}} |
{{works with|gfortran 5.1.0}} |
||
<syntaxhighlight lang=fortran> |
<syntaxhighlight lang="fortran"> |
||
program mean_time_of_day |
program mean_time_of_day |
||
implicit none |
implicit none |
||
Line 973: | Line 973: | ||
=={{header|FreeBASIC}}== |
=={{header|FreeBASIC}}== |
||
<syntaxhighlight lang=freebasic>' FB 1.05.0 Win64 |
<syntaxhighlight lang="freebasic">' FB 1.05.0 Win64 |
||
Const pi As Double = 3.1415926535897932 |
Const pi As Double = 3.1415926535897932 |
||
Line 1,034: | Line 1,034: | ||
=={{header|Go}}== |
=={{header|Go}}== |
||
<syntaxhighlight lang=go>package main |
<syntaxhighlight lang="go">package main |
||
import ( |
import ( |
||
Line 1,091: | Line 1,091: | ||
=={{header|Groovy}}== |
=={{header|Groovy}}== |
||
Solution: |
Solution: |
||
<syntaxhighlight lang=groovy>import static java.lang.Math.* |
<syntaxhighlight lang="groovy">import static java.lang.Math.* |
||
final format = 'HH:mm:ss', clock = PI / 12, millisPerHr = 3600*1000 |
final format = 'HH:mm:ss', clock = PI / 12, millisPerHr = 3600*1000 |
||
Line 1,104: | Line 1,104: | ||
Test: |
Test: |
||
<syntaxhighlight lang=groovy>println (meanTime("23:00:17", "23:40:20", "00:12:45", "00:17:19"))</syntaxhighlight> |
<syntaxhighlight lang="groovy">println (meanTime("23:00:17", "23:40:20", "00:12:45", "00:17:19"))</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
Line 1,110: | Line 1,110: | ||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
<syntaxhighlight lang=haskell>import Data.Complex (cis, phase) |
<syntaxhighlight lang="haskell">import Data.Complex (cis, phase) |
||
import Data.List.Split (splitOn) |
import Data.List.Split (splitOn) |
||
import Text.Printf (printf) |
import Text.Printf (printf) |
||
Line 1,143: | Line 1,143: | ||
=={{header|Icon}} and {{header|Unicon}}== |
=={{header|Icon}} and {{header|Unicon}}== |
||
<lang>procedure main(A) |
<syntaxhighlight lang="text">procedure main(A) |
||
every put(B := [], ct2a(!A)) |
every put(B := [], ct2a(!A)) |
||
write(ca2t(meanAngle(B))) |
write(ca2t(meanAngle(B))) |
||
Line 1,178: | Line 1,178: | ||
=={{header|J}}== |
=={{header|J}}== |
||
use <code>avgAngleR</code> from [[Averages/Mean angle#J]] |
use <code>avgAngleR</code> from [[Averages/Mean angle#J]] |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="j">require 'types/datetime' |
||
parseTimes=: ([: _&".;._2 ,&':');._2 |
parseTimes=: ([: _&".;._2 ,&':');._2 |
||
secsFromTime=: 24 60 60 #. ] NB. convert from time to seconds |
secsFromTime=: 24 60 60 #. ] NB. convert from time to seconds |
||
Line 1,184: | Line 1,184: | ||
meanTime=: 'hh:mm:ss' fmtTime [: secsFromTime [: avgAngleR&.rft parseTimes</syntaxhighlight> |
meanTime=: 'hh:mm:ss' fmtTime [: secsFromTime [: avgAngleR&.rft parseTimes</syntaxhighlight> |
||
{{out|Example Use}} |
{{out|Example Use}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="j"> meanTime '23:00:17 23:40:20 00:12:45 00:17:19 ' |
||
23:47:43</syntaxhighlight> |
23:47:43</syntaxhighlight> |
||
=={{header|Java}}== |
=={{header|Java}}== |
||
{{trans|Kotlin}} |
{{trans|Kotlin}} |
||
<syntaxhighlight lang=java>public class MeanTimeOfDay { |
<syntaxhighlight lang="java">public class MeanTimeOfDay { |
||
static double meanAngle(double[] angles) { |
static double meanAngle(double[] angles) { |
||
Line 1,245: | Line 1,245: | ||
=={{header|Javascript}}== |
=={{header|Javascript}}== |
||
{{works with|Node.js}} |
{{works with|Node.js}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="javascript">var args = process.argv.slice(2); |
||
function time_to_seconds( hms ) { |
function time_to_seconds( hms ) { |
||
Line 1,295: | Line 1,295: | ||
The "mean time" of two times that differ by 12 hours (e.g. ["00:00:00", "12:00:00"]) is not very well-defined, and is accordingly computed as null here. |
The "mean time" of two times that differ by 12 hours (e.g. ["00:00:00", "12:00:00"]) is not very well-defined, and is accordingly computed as null here. |
||
<syntaxhighlight lang=jq># input: array of "h:m:s" |
<syntaxhighlight lang="jq"># input: array of "h:m:s" |
||
def mean_time_of_day: |
def mean_time_of_day: |
||
def pi: 4 * (1|atan); |
def pi: 4 * (1|atan); |
||
Line 1,327: | Line 1,327: | ||
end ;</syntaxhighlight> |
end ;</syntaxhighlight> |
||
'''Examples''' |
'''Examples''' |
||
<syntaxhighlight lang=jq>["0:0:0", "12:0:0" ], |
<syntaxhighlight lang="jq">["0:0:0", "12:0:0" ], |
||
["0:0:0", "24:0:0" ], |
["0:0:0", "24:0:0" ], |
||
["1:0:0", "1:0:0" ], |
["1:0:0", "1:0:0" ], |
||
Line 1,336: | Line 1,336: | ||
| mean_time_of_day</syntaxhighlight> |
| mean_time_of_day</syntaxhighlight> |
||
{{out}} |
{{out}} |
||
<syntaxhighlight lang=sh>$ jq -r -n -f Mean_time_of_day.jq |
<syntaxhighlight lang="sh">$ jq -r -n -f Mean_time_of_day.jq |
||
null |
null |
||
00:00:00 |
00:00:00 |
||
Line 1,348: | Line 1,348: | ||
{{works with|Julia|0.6}} |
{{works with|Julia|0.6}} |
||
{{trans|MATLAB}} |
{{trans|MATLAB}} |
||
<syntaxhighlight lang=julia>using Statistics |
<syntaxhighlight lang="julia">using Statistics |
||
function meantime(times::Array, dlm::String=":") |
function meantime(times::Array, dlm::String=":") |
||
Line 1,379: | Line 1,379: | ||
=={{header|Kotlin}}== |
=={{header|Kotlin}}== |
||
{{trans|FreeBASIC}} |
{{trans|FreeBASIC}} |
||
<syntaxhighlight lang=scala>// version 1.0.6 |
<syntaxhighlight lang="scala">// version 1.0.6 |
||
fun meanAngle(angles: DoubleArray): Double { |
fun meanAngle(angles: DoubleArray): Double { |
||
Line 1,422: | Line 1,422: | ||
=={{header|Liberty BASIC}}== |
=={{header|Liberty BASIC}}== |
||
<syntaxhighlight lang=lb> |
<syntaxhighlight lang="lb"> |
||
global pi |
global pi |
||
pi = acs(-1) |
pi = acs(-1) |
||
Line 1,481: | Line 1,481: | ||
=={{header|Lua}}== |
=={{header|Lua}}== |
||
<syntaxhighlight lang=lua> |
<syntaxhighlight lang="lua"> |
||
local times = {"23:00:17","23:40:20","00:12:45","00:17:19"} |
local times = {"23:00:17","23:40:20","00:12:45","00:17:19"} |
||
Line 1,524: | Line 1,524: | ||
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
=={{header|Mathematica}} / {{header|Wolfram Language}}== |
||
<syntaxhighlight lang=mathematica>meanTime[list_] := |
<syntaxhighlight lang="mathematica">meanTime[list_] := |
||
StringJoin@ |
StringJoin@ |
||
Riffle[ToString /@ |
Riffle[ToString /@ |
||
Line 1,536: | Line 1,536: | ||
=={{header|MATLAB}} / {{header|Octave}}== |
=={{header|MATLAB}} / {{header|Octave}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="matlab">function t = mean_time_of_day(t) |
||
c = pi/(12*60*60); |
c = pi/(12*60*60); |
||
for k=1:length(t) |
for k=1:length(t) |
||
Line 1,552: | Line 1,552: | ||
=={{header|Nim}}== |
=={{header|Nim}}== |
||
{{works with|Nim|0.20.0+}} |
{{works with|Nim|0.20.0+}} |
||
<syntaxhighlight lang=nim>import math, complex, strutils, sequtils |
<syntaxhighlight lang="nim">import math, complex, strutils, sequtils |
||
proc meanAngle(deg: openArray[float]): float = |
proc meanAngle(deg: openArray[float]): float = |
||
Line 1,577: | Line 1,577: | ||
=={{header|Oberon-2}}== |
=={{header|Oberon-2}}== |
||
{{works with|oo2c}} |
{{works with|oo2c}} |
||
<syntaxhighlight lang=oberon2> |
<syntaxhighlight lang="oberon2"> |
||
MODULE AvgTimeOfDay; |
MODULE AvgTimeOfDay; |
||
IMPORT |
IMPORT |
||
Line 1,655: | Line 1,655: | ||
=={{header|OCaml}}== |
=={{header|OCaml}}== |
||
<syntaxhighlight lang=ocaml>let pi_twice = 2.0 *. 3.14159_26535_89793_23846_2643 |
<syntaxhighlight lang="ocaml">let pi_twice = 2.0 *. 3.14159_26535_89793_23846_2643 |
||
let day = float (24 * 60 * 60) |
let day = float (24 * 60 * 60) |
||
Line 1,696: | Line 1,696: | ||
=={{header|ooRexx}}== |
=={{header|ooRexx}}== |
||
<syntaxhighlight lang=oorexx>/* REXX --------------------------------------------------------------- |
<syntaxhighlight lang="oorexx">/* REXX --------------------------------------------------------------- |
||
* 25.06.2014 Walter Pachl |
* 25.06.2014 Walter Pachl |
||
*--------------------------------------------------------------------*/ |
*--------------------------------------------------------------------*/ |
||
Line 1,736: | Line 1,736: | ||
=={{header|PARI/GP}}== |
=={{header|PARI/GP}}== |
||
<syntaxhighlight lang=parigp>meanAngle(v)=atan(sum(i=1,#v,sin(v[i]))/sum(i=1,#v,cos(v[i])))%(2*Pi) |
<syntaxhighlight lang="parigp">meanAngle(v)=atan(sum(i=1,#v,sin(v[i]))/sum(i=1,#v,cos(v[i])))%(2*Pi) |
||
meanTime(v)=my(x=meanAngle(2*Pi*apply(u->u[1]/24+u[2]/1440+u[3]/86400, v))*12/Pi); [x\1, 60*(x-=x\1)\1, round(60*(60*x-60*x\1))] |
meanTime(v)=my(x=meanAngle(2*Pi*apply(u->u[1]/24+u[2]/1440+u[3]/86400, v))*12/Pi); [x\1, 60*(x-=x\1)\1, round(60*(60*x-60*x\1))] |
||
meanTime([[23,0,17], [23,40,20], [0,12,45], [0,17,19]])</syntaxhighlight> |
meanTime([[23,0,17], [23,40,20], [0,12,45], [0,17,19]])</syntaxhighlight> |
||
Line 1,746: | Line 1,746: | ||
Using the core module <code>Math::Complex</code> to enable use of complex numbers. The <code>POSIX</code> CPAN module provides the <code>fmod</code> routine for non-integer modulus calculations. |
Using the core module <code>Math::Complex</code> to enable use of complex numbers. The <code>POSIX</code> CPAN module provides the <code>fmod</code> routine for non-integer modulus calculations. |
||
{{trans|Raku}} |
{{trans|Raku}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="perl">use strict; |
||
use warnings; |
use warnings; |
||
use POSIX 'fmod'; |
use POSIX 'fmod'; |
||
Line 1,784: | Line 1,784: | ||
===v5.36=== |
===v5.36=== |
||
As previous, but using features from an up-to-date release of Perl, e.g. strict/warn/subroutine signatures without the <code>use</code> boilerplate. |
As previous, but using features from an up-to-date release of Perl, e.g. strict/warn/subroutine signatures without the <code>use</code> boilerplate. |
||
<syntaxhighlight lang=perl>use v5.36; |
<syntaxhighlight lang="perl">use v5.36; |
||
use POSIX 'fmod'; |
use POSIX 'fmod'; |
||
use Math::Complex; |
use Math::Complex; |
||
Line 1,805: | Line 1,805: | ||
=={{header|Phix}}== |
=={{header|Phix}}== |
||
<!--<syntaxhighlight lang= |
<!--<syntaxhighlight lang="phix">(phixonline)--> |
||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
||
<span style="color: #008080;">function</span> <span style="color: #000000;">MeanAngle</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">angles</span><span style="color: #0000FF;">)</span> |
<span style="color: #008080;">function</span> <span style="color: #000000;">MeanAngle</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">angles</span><span style="color: #0000FF;">)</span> |
||
Line 1,847: | Line 1,847: | ||
=={{header|PHP}}== |
=={{header|PHP}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="php"> |
||
<?php |
<?php |
||
function time2ang($tim) { |
function time2ang($tim) { |
||
Line 1,893: | Line 1,893: | ||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="picolisp">(load "@lib/math.l") |
||
(de meanTime (Lst) |
(de meanTime (Lst) |
||
Line 1,904: | Line 1,904: | ||
(tim$ (% (+ Tim 86400) 86400) T) ) )</syntaxhighlight> |
(tim$ (% (+ Tim 86400) 86400) T) ) )</syntaxhighlight> |
||
{{out|Test}} |
{{out|Test}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="picolisp">: (meanTime '("23:00:17" "23:40:20" "00:12:45" "00:17:19")) |
||
-> "23:47:43"</syntaxhighlight> |
-> "23:47:43"</syntaxhighlight> |
||
=={{header|PL/I}}== |
=={{header|PL/I}}== |
||
<syntaxhighlight lang=pli>*process source attributes xref; |
<syntaxhighlight lang="pli">*process source attributes xref; |
||
avt: Proc options(main); |
avt: Proc options(main); |
||
/*-------------------------------------------------------------------- |
/*-------------------------------------------------------------------- |
||
Line 1,958: | Line 1,958: | ||
=={{header|PowerShell}}== |
=={{header|PowerShell}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="powershell"> |
||
function Get-MeanTimeOfDay |
function Get-MeanTimeOfDay |
||
{ |
{ |
||
Line 2,026: | Line 2,026: | ||
} |
} |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="powershell"> |
||
[timespan]$meanTimeOfDay = "23:00:17","23:40:20","00:12:45","00:17:19" | Get-MeanTimeOfDay |
[timespan]$meanTimeOfDay = "23:00:17","23:40:20","00:12:45","00:17:19" | Get-MeanTimeOfDay |
||
"Mean time is {0}" -f (Get-Date $meanTimeOfDay.ToString()).ToString("hh:mm:ss tt") |
"Mean time is {0}" -f (Get-Date $meanTimeOfDay.ToString()).ToString("hh:mm:ss tt") |
||
Line 2,036: | Line 2,036: | ||
=={{header|Python}}== |
=={{header|Python}}== |
||
<syntaxhighlight lang=python>from cmath import rect, phase |
<syntaxhighlight lang="python">from cmath import rect, phase |
||
from math import radians, degrees |
from math import radians, degrees |
||
Line 2,064: | Line 2,064: | ||
=={{header|Racket}}== |
=={{header|Racket}}== |
||
<syntaxhighlight lang=racket> |
<syntaxhighlight lang="racket"> |
||
#lang racket |
#lang racket |
||
(define (mean-angle/radians as) |
(define (mean-angle/radians as) |
||
Line 2,093: | Line 2,093: | ||
{{works with|Rakudo|2015.12}} |
{{works with|Rakudo|2015.12}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="raku" line>sub tod2rad($_) { [+](.comb(/\d+/) Z* 3600,60,1) * tau / 86400 } |
||
sub rad2tod ($r) { |
sub rad2tod ($r) { |
||
Line 2,114: | Line 2,114: | ||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<syntaxhighlight lang=rexx>/* REXX --------------------------------------------------------------- |
<syntaxhighlight lang="rexx">/* REXX --------------------------------------------------------------- |
||
* 25.06.2014 Walter Pachl |
* 25.06.2014 Walter Pachl |
||
* taken from ooRexx using my very aged sin/cos/artan functions |
* taken from ooRexx using my very aged sin/cos/artan functions |
||
Line 2,220: | Line 2,220: | ||
Using the methods at [[http://rosettacode.org/wiki/Averages/Mean_angle#Ruby|Averages/Mean angle]] |
Using the methods at [[http://rosettacode.org/wiki/Averages/Mean_angle#Ruby|Averages/Mean angle]] |
||
<syntaxhighlight lang=ruby>def time2deg(t) |
<syntaxhighlight lang="ruby">def time2deg(t) |
||
raise "invalid time" unless m = t.match(/^(\d\d):(\d\d):(\d\d)$/) |
raise "invalid time" unless m = t.match(/^(\d\d):(\d\d):(\d\d)$/) |
||
hh,mm,ss = m[1..3].map {|e| e.to_i} |
hh,mm,ss = m[1..3].map {|e| e.to_i} |
||
Line 2,243: | Line 2,243: | ||
=={{header|Run BASIC}}== |
=={{header|Run BASIC}}== |
||
<syntaxhighlight lang=runbasic>global pi |
<syntaxhighlight lang="runbasic">global pi |
||
pi = acs(-1) |
pi = acs(-1) |
||
Line 2,288: | Line 2,288: | ||
End Function</syntaxhighlight> |
End Function</syntaxhighlight> |
||
=={{header|Rust}}== |
=={{header|Rust}}== |
||
<syntaxhighlight lang=rust> |
<syntaxhighlight lang="rust"> |
||
use std::f64::consts::PI; |
use std::f64::consts::PI; |
||
Line 2,358: | Line 2,358: | ||
=={{header|Scala}}== |
=={{header|Scala}}== |
||
{{libheader|java.time.LocalTime}}<syntaxhighlight lang= |
{{libheader|java.time.LocalTime}}<syntaxhighlight lang="scala">import java.time.LocalTime |
||
import scala.compat.Platform |
import scala.compat.Platform |
||
Line 2,394: | Line 2,394: | ||
To be self-contained, this starts with the functions from [[Averages/Mean angle]] |
To be self-contained, this starts with the functions from [[Averages/Mean angle]] |
||
<syntaxhighlight lang=scheme> |
<syntaxhighlight lang="scheme"> |
||
(import (scheme base) |
(import (scheme base) |
||
(scheme inexact) |
(scheme inexact) |
||
Line 2,457: | Line 2,457: | ||
{{trans|Ruby}} |
{{trans|Ruby}} |
||
Using the '''mean_angle()''' function from: [http://rosettacode.org/wiki/Averages/Mean_angle#Sidef "Averages/Mean angle"] |
Using the '''mean_angle()''' function from: [http://rosettacode.org/wiki/Averages/Mean_angle#Sidef "Averages/Mean angle"] |
||
<syntaxhighlight lang=ruby>func time2deg(t) { |
<syntaxhighlight lang="ruby">func time2deg(t) { |
||
(var m = t.match(/^(\d\d):(\d\d):(\d\d)$/)) || die "invalid time" |
(var m = t.match(/^(\d\d):(\d\d):(\d\d)$/)) || die "invalid time" |
||
var (hh,mm,ss) = m.cap.map{.to_i}... |
var (hh,mm,ss) = m.cap.map{.to_i}... |
||
Line 2,479: | Line 2,479: | ||
=={{header|SQL}}/{{header|PostgreSQL}}== |
=={{header|SQL}}/{{header|PostgreSQL}}== |
||
{{trans|Python}} |
{{trans|Python}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="sql"> |
||
--Setup table for testing |
--Setup table for testing |
||
CREATE TABLE time_table(times time); |
CREATE TABLE time_table(times time); |
||
Line 2,501: | Line 2,501: | ||
=={{header|Swift}}== |
=={{header|Swift}}== |
||
<syntaxhighlight lang=swift>import Foundation |
<syntaxhighlight lang="swift">import Foundation |
||
@inlinable public func d2r<T: FloatingPoint>(_ f: T) -> T { f * .pi / 180 } |
@inlinable public func d2r<T: FloatingPoint>(_ f: T) -> T { f * .pi / 180 } |
||
Line 2,564: | Line 2,564: | ||
=={{header|Tcl}}== |
=={{header|Tcl}}== |
||
<syntaxhighlight lang=tcl>proc meanTime {times} { |
<syntaxhighlight lang="tcl">proc meanTime {times} { |
||
set secsPerRad [expr {60 * 60 * 12 / atan2(0,-1)}] |
set secsPerRad [expr {60 * 60 * 12 / atan2(0,-1)}] |
||
set sumSin [set sumCos 0.0] |
set sumSin [set sumCos 0.0] |
||
Line 2,587: | Line 2,587: | ||
=={{header|VBA}}== |
=={{header|VBA}}== |
||
Uses Excel and [[Averages/Mean_angle#VBA|mean angle]]. |
Uses Excel and [[Averages/Mean_angle#VBA|mean angle]]. |
||
<syntaxhighlight lang=vb>Public Sub mean_time() |
<syntaxhighlight lang="vb">Public Sub mean_time() |
||
Dim angles() As Double |
Dim angles() As Double |
||
s = [{"23:00:17","23:40:20","00:12:45","00:17:19"}] |
s = [{"23:00:17","23:40:20","00:12:45","00:17:19"}] |
||
Line 2,599: | Line 2,599: | ||
=={{header|Visual Basic .NET}}== |
=={{header|Visual Basic .NET}}== |
||
{{trans|C#}} |
{{trans|C#}} |
||
<syntaxhighlight lang=vbnet>Module Module1 |
<syntaxhighlight lang="vbnet">Module Module1 |
||
Function TimeToDegrees(time As TimeSpan) As Double |
Function TimeToDegrees(time As TimeSpan) As Double |
||
Line 2,656: | Line 2,656: | ||
=={{header|Vlang}}== |
=={{header|Vlang}}== |
||
{{trans|Wren}} |
{{trans|Wren}} |
||
<syntaxhighlight lang=vlang>import math |
<syntaxhighlight lang="vlang">import math |
||
const inputs = ["23:00:17", "23:40:20", "00:12:45", "00:17:19"] |
const inputs = ["23:00:17", "23:40:20", "00:12:45", "00:17:19"] |
||
Line 2,703: | Line 2,703: | ||
=={{header|Wren}}== |
=={{header|Wren}}== |
||
{{libheader|Wren-fmt}} |
{{libheader|Wren-fmt}} |
||
<syntaxhighlight lang=ecmascript>import "/fmt" for Fmt |
<syntaxhighlight lang="ecmascript">import "/fmt" for Fmt |
||
var timeToDegs = Fn.new { |time| |
var timeToDegs = Fn.new { |time| |
||
Line 2,744: | Line 2,744: | ||
=={{header|XPL0}}== |
=={{header|XPL0}}== |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="xpl0">include c:\cxpl\codes; |
||
proc NumOut(N); \Display 2-digit N with leading zero |
proc NumOut(N); \Display 2-digit N with leading zero |
||
Line 2,788: | Line 2,788: | ||
=={{header|Yabasic}}== |
=={{header|Yabasic}}== |
||
{{trans|Phix}} |
{{trans|Phix}} |
||
<syntaxhighlight lang= |
<syntaxhighlight lang="yabasic">sub atan2(y, x) |
||
return 2 * atan((sqrt(x **2 + y ** 2) - x) / y) |
return 2 * atan((sqrt(x **2 + y ** 2) - x) / y) |
||
end sub |
end sub |
||
Line 2,839: | Line 2,839: | ||
to task "Averages/Mean angle" and some on-the-fly |
to task "Averages/Mean angle" and some on-the-fly |
||
time-to-angle and back conversions. |
time-to-angle and back conversions. |
||
<syntaxhighlight lang=zkl>var D=Time.Date; |
<syntaxhighlight lang="zkl">var D=Time.Date; |
||
fcn meanT(t1,t2,etc){ |
fcn meanT(t1,t2,etc){ |
||
ts:=vm.arglist.apply(fcn(hms){ |
ts:=vm.arglist.apply(fcn(hms){ |