Innhald

# Tenesta ScriptForge.Region

Tenesta Region tilbyr ei samling eigenskapar og metodar for å handsama lokale og regionrelaterte aspekt ved programmering, for eksempel:

- Få tilgang til lokale og regionavhengige innstillingar som talformatering, valuta og tidssoner.

- Konvertera tidssoner og rekna ut forskyvingar av sommartid (DST).

- Transformera tal til tekst på alle støtta språk.

## Definisjonar

### Språk eller region

Ein streng som kombinerer eit språk og eit land i formatet «sp-LA» (språk-land). Språkdelen vert uttrykt med 2 eller 3 små bokstavar, ein bindestrek og 2 store bokstavar som representerer landet.

For eksempel svarar "de-AT" til det tyske språket brukt i Austerrike og "fr-BE" til det franske språket i Belgia og så vidare.

I nokre situasjonar er ikkje den fullstendige nasjonale innstillinga nødvendig, og berre språket eller landet kan spesifiserast.

Dei fleste eigenskapane og metodane godtar ei nasjonal innstilling som argument. Viss det ikkje er gjeve noko nasjonal innstilling, vert den nasjonale innstillinga for brukargrensesnittet som er definert i eigenskapen OfficeLocale i tenesta Platform brukt.

### Tidssone

Ein streng i formatet «Region/By» som «Europa/Berlin», eller ein tidssone-ID som «UTC» eller «GMT-8:00». Du finn ei liste over moglege tidssonenamn og ID-ar på wikisida List of tz database timezones.

Viss du set inn ein ugyldig tidssonestreng i nokre av metodane i tenesta Region, vil dette ikkje resultere i ein køyretidsfeil. I staden vil metodar som UTCDateTime og UTCNow returnera gjeldende dato og klokkeslett brukt av operativsystemet.

Tidsforskyvinga mellom tidssona og Greenwich Meridian Time (GMT) er gjeve i minutt.

Sommartid (DST) er ei ekstra forskyving.

Tidssona og DST-forskyvinga kan vera positive eller negative.

## Oppkall av tenester

Før du brukar tenesta Region, må biblioteket ScriptForge vera lasta inn eller importert:

• Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krev import frå scriptforge-modulen:
from scriptforge import CreateScriptService

Eksempla nedanfor i Basic og Python startar tenesta Region og får tilgang til eigenskapen Country.

##### I Basic

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Dim oRegion As Variant
        oRegion = CreateScriptService("Region")
        MsgBox oRegion.Country("en-US") ' USA

##### I Python

        from scriptforge import CreateScriptService
        oRregion = CreateScriptService("Region")
        bas = CreateScriptService("Basic")
        bas.MsgBox(oRegion.Country("en-US"))

## Eigenskapar

Alle eigenskapane som er oppførte nedanfor godtar eit locale-argument, gjeve som ein streng. Nokre av eigenskapane krev at dette argumentet er i formatet "sp-LA" (språk-LAND), medan andre godtek "sp" eller "LA".

Namn | Skriveverna | Type | Språkversjon | Beskriving
--- | --- | --- | --- | ---
Country | Ja | String | "la‑CO" "CO" | Returnerer landsnamnet på engelsk som svarar til ein gjeven region.
Currency | Ja | String | "la-CO" "CO" | Returnerer ISO 4217-valutakoden for den gjevne regionen.
DatePatterns | Ja | Strengmatrise | "la-CO" | Returnerer ei nullbasert matrise med strengar som inneheld datoakseptmønstra for det gjevne området.
DateSeparator | Ja | String | "la-CO" | Returnerer datoskiljeteikn brukte i den gjevne regionen.
DayAbbrevNames | Ja | Strengmatrise | "la-CO" "la" | Returnerer ei nullbasert matrise av strengar som inneheld lista over forkorta namn på vekedagar på det gjevne språket.
DayNames | Ja | Strengmatrise | "la-CO" "la" | Returnerer ei nullbasert matrise av strengar som inneheld lista over namna på vekedagar på det gjevne språket.
DayNarrowNames | Ja | Strengmatrise | "la-CO" "la" | Returnerer ei nullbasert matrise av strengar som inneheld lista over dei første bokstavane i namna på vekedagar på det gjevne språket.
DecimalPoint | Ja | String | "la-CO" | Returnerer desimalskiljeteikn brukte i tal i det gjevne området.
Language | Ja | String | "la-CO" "la" | Returnerer namnet på språket, på engelsk, for den gjevne regionen.
ListSeparator | Ja | String | "la-CO" | Returnerer listeskiljeteikn brukte i den gjevne regionen.
MonthAbbrevNames | Ja | Strengmatrise | "la-CO" "la" | Returnerer ei nullbasert matrise av strengar som inneheld lista over forkorta namn på månadar på det gjevne språket.
MonthNames | Ja | Strengmatrise | "la-CO" "la" | Returnerer ei nullbasert matrise av strengar som inneheld lista over namna på månadane på det gjevne språket.
MonthNarrowNames | Ja | Strengmatrise | "la-CO" "la" | Returnerer ei nullbasert matrise av strengar som inneheld lista over dei første bokstavane i namna på månadane på det gjevne språket.
ThousandSeparator | Ja | String | "la-CO" | Returnerer tusenskiljeteikn brukte i tal i det gjevne området.
TimeSeparator | Ja | String | "la-CO" | Returnerer skiljeteikn som vert brukte til å formatera tider i det gjevne området.

Liste over metodar i tenesta «Region»
DSTOffset LocalDateTime | Number2Text TimeZoneOffset | UTCDateTime UTCNow

## DSTOffset

Reknar ut den ekstra sommartidsforskyvinga (DST) i minutt som gjeld for ein gjeven region og tidssone.

### Syntaks:

svc.DSTOffset(localdatetime: date, timezone: str, opt locale: str): int

### Parametrar:

localdatetime: den lokale datoen og klokkeslettet uttrykt som ein dato.

timezone: tidssona som den forskyvinga skal reknast ut for.

locale: språket som spesifiserer landet som den lokale tida skal reknast ut for, gjeve anten i «sp-LA»- eller «LA»-format (språk-LAND). Standardverdien er språket som er definert i eigenskapen OfficeLocale i tenaren Platform.

### Eksempel:

##### I Basic

          ' Reknar ut den offisielt gjeldande tidssona for "America/Los_Angeles"
          Dim aDateTime As Date, offset As Integer
          aDateTime = DateSerial(2022, 7, 1) + TimeSerial(16, 0, 0)
          offset = oRegion.DSTOffset(aDateTime, "America/Los_Angeles", "US") ' 60 (minutt)
          aDateTime = DateSerial(2022, 1, 1) + TimeSerial(16, 0, 0)
          offset = oRegion.DSTOffset(aDateTime, "America/Los_Angeles", "US") ' 0 (minutt)

##### I Python

          import datetime
          aDateTime = datetime.datetime(2022, 7, 1, 16, 0, 0)
          offset = oRegion.DSTOffset(aDateTime, "America/Los_Angeles", "US") ' 60 (minutt)
          aDateTime = datetime.datetime(2022, 1, 1, 16, 0, 0)
          offset = oRegion.DSTOffset(aDateTime, "America/Los_Angeles", "US") ' 0 (minutt)

## LocalDateTime

Reknar ut lokal dato og klokkeslett frå UTC-dato og -klokkeslett.

### Syntaks:

svc.LocalDateTime(utcdatetime: date, timezone: str, opt locale: str): date

### Parametrar:

utcdatetime: UTC-datoen og -klokkeslettet uttrykt ved hjelp av eit datoobjekt.

timezone: tidssona som den lokale tida skal reknast ut for.

locale: språket som spesifiserer landet som den lokale tida skal reknast ut for, gjeve anten i «la-CO»- eller «CO»-format. Standardverdien er språket som er definert i eigenskapen OfficeLocale i tenaren Platform.

### Eksempel:

##### I Basic

          ' 6. juni 2022 kl. 10:30:45 (brukt her som UTC-tid)
          Dim UTCTime As Date, localTime As Date
          UTCTime = DateSerial(2022, 6, 23) + TimeSerial(10, 30, 45)
          ' Reknar ut lokal tid i Sao Paulo, Brasil
          6. juni 2022 kl. 07:30:45
          localTime = oRegion.LocalDateTime(UTCTime, "America/Sao_Paulo", "BR")

##### I Python

          import datetime
          utcTime = datetime.datetime(2022, 6, 23, 10, 30, 45)
          localTime = oRegion.LocalDateTime(utcTime, "America/Sao_Paulo", "BR")

## Number2Text

Konverterer tal og pengeverdiar til skrive tekst for alle språka som for tida er støtta.

Du finn ei liste over alle språka som er støtta i XNumberText Interface API reference.

### Syntaks:

svc.Number2Text(number: any, opt locale: str): str

### Parametrar:

number: talet som skal konverterast til skrive tekst. Det kan leverast anten som ein numerisk type eller som ein streng. Når det er brukt ein streng, kan han innleiast med eit prefiks som informerer om korleis tala skal skrivast. Det er også mogleg å ta med ISO 4217 valutakoder. Sjå eksempla nedanfor for meir informasjon.

locale: Koden som definerer språket som talet skal konverterast til, gjeve anten i «la-CO» eller «la» format. Standardverdien er språket som er definert i eigenskapen OfficeLocale til tenesta Platform.

### Eksempel:

##### I Basic

          ' Returnerer "eitt hundre og fem"
          Dim numText As String
          numText = oRegion.Number2Text(105, "nn-NO")
          ' Returnerer: "to komma fire to"
          numText = oRegion.Number2Text(2.42, "nn-NO")
          ' Returnerer: "tjuefem euro og ti cent" Legg merkje til valutasymbolet "EUR".
          numText = oRegion.Number2Text("EUR 25.10", "nn-NO")
          ' Returnerer: "femtende"; Legg merke til det prefikset "ordinal"
          numText = oRegion.Number2Text("ordinal 15", "nn-NO")

##### I Python

          numText = oRegion.Number2Text(105, "nn-NO")
          numText = oRegion.Number2Text(2.42, "nn-NO")
          numText = oRegion.Number2Text("EUR 25.10", "nn-NO")
          numText = oRegion.Number2Text("ordinal 15", "nn-NO")

Viss du ønskjer ei liste over alle støtta prefiks på eit gjeve språk, kall opp Number2Text med det spesielle "hjelp"-argumentet. I eksempelet nedanfor går ein ut frå at lokaliteten er sett til "en-US". Lista over tilgjengelege prefiks for "en-US" vert vist i MsgBox:

          prefixes = oRegion.Number2Text("help")
          MsgBox prefixes
          ' one, two, three
          ' ordinal: first, second, third
          ' ordinal-number: 1st, 2nd, 3rd
          ' year: nineteen ninety-nine, two thousand, two thousand one
          ' currency (for example, USD): two U.S. dollars and fifty cents
          ' money USD: two and 50/100 U.S. dollars

Den første linja i meldingsboksen er utan prefiks, noko som betyr at innhaldet er i standardformatet. Linjene nedanfor inneheld prefikset og nokre eksempel på tal som brukar formatet.

Kvart språk har sitt eige sett med støtta prefiks. Talet på tilgjengelege prefiks kan variera frå språk til språk.

For å få lista over prefiks for eit spesifikt språk eller ein lokalitet, kan det spesifiserast som det andre argumentet i Number2Text. Eksempelet nedanfor viser dei prefiksa som er tilgjengelege for lokaliteten "pt-BR":

          prefixes = oRegion.Number2Text("help", "pt-BR")
          MsgBox prefixes
          ' um, dois, três
          ' feminine: uma, duas, três
          ' masculine: um, dois, três
          ' ordinal-feminine: primeira, segunda, terceira
          ' ordinal-masculine: primeiro, segundo, terceiro
          ' ordinal-number-feminine: 1.ª, 2.ª, 3.ª
          ' ordinal-number-masculine: 1.º, 2.º, 3.º

## TimeZoneOffset

Returnerer forskyvinga mellom GMT og den gjevne tidssona og lokaliteten i minutt.

### Syntaks:

svc.TimeZoneOffset(timezone: str, opt locale: str): int

### Parametrar:

timezone: tidssona som forskyvinga i høve til GMT skal reknast ut for.

locale: lokaliteten som spesifiserer landet som forskyvinga skal reknast ut for, gjeve anten i formata "la-CO" eller "CO". Standardverdien er lokaliteten som er definert i eigenskapen OfficeLocale i tenesta Platform.

### Eksempel:

##### I Basic

          Dim offset As Integer
          offset = oRegion.TimeZoneOffset("America/New_York", "US") ' -300
          offset = oRegion.TimeZoneOffset("Europe/Berlin", "DE") ' 60

##### I Python

          offset = oRegion.TimeZoneOffset("America/New_York", "US") # -300
          offset = oRegion.TimeZoneOffset("Europe/Berlin", "DE") # 60

## UTCDateTime

Returnerer UTC-datoen og -klokkeslettet ut frå ein gjeven lokal dato og eit gjeve klokkeslett i ei tidssone.

### Syntaks:

svc.UTCDateTime(localdatetime: date, timezone: str, opt locale: str): date

### Parametrar:

localdatetime: den lokale datoen og klokkeslettet i ei bestemt tidssone uttrykt som ein dato.

timezone: tidssona som argumentet localdatetime vart gjeven for.

locale: lokaliteten som spesifiserer landet som argumentet localdatetime er gjeve for, uttrykt anten i formatet "sp-LA" eller "LA" (språk-LAND). Standardverdien er lokaliteten som er definert i eigenskapen OfficeLocale i tenesta Platform.

### Eksempel:

##### I Basic

          ' Dato/klokkeslett i Berlin, 23. juni 2022 kl. 14:30:00
          Dim localDT As Date, utcTime As Date
          localDT = DateSerial(2022, 6, 23) + TimeSerial(14, 30, 0)
          ' UTC dato/klokkeslett er 23. juni 2022 kl. 12:30:00
          utcTime = oRegion.UTCDateTime(localDT, "Europe/Berlin", "DE")

##### I Python

          import datetime
          localDT = datetime.datetime(2022, 6, 23, 14, 30, 0)
          utcTime = oRegion.UTCDateTime(localDT, "Europe/Berlin", "DE")

## UTCNow

Returnerer gjeldande UTC-dato og -klokkeslett når det er gjeve ei tidssone og ein lokalitet.

Denne metoden brukar gjeldande dato og klokkeslett i operativsystemet for å rekna UTC-tida.

### Syntaks:

svc.UTCNow(timezone: str, opt locale: str): date

### Parametrar:

timezone: tidssona som den gjeldande UTC-tida skal reknast ut for.

locale: lokaliteten som spesifiserer landet som den gjeldande UTC-tida skal reknast ut for, gjeve anten i formata "sp-LA" eller "LA" (språk-LAND). Standardverdien er lokaliteten som er definert i eigenskapen OfficeLocale i tenesta Platform.

### Eksempel:

##### I Basic

          ' Går ut frå at klokka i operativsystemet er 23. juni 2022 kl. 10:42:00
          ' Viss datamaskinen er i Europa/Berlin, er UTC-tida 23. juni 2022 kl. 08:42:00
          Dim utcTime As Date
          utcTime = oRegion.UTCNow("Europe/Berlin", "DE")

##### I Python

          utcTime = oRegion.UTCNow("Europe/Berlin", "DE")

Liknande emne

Tenesta ScriptForge.Platform