ເນື້ອໃນ

# ບໍລິການ ScriptForge.Region

ບໍລິການ Region ໃຫ້ຄຸນສົມບັດ ແລະ ວິທີການຕ່າງໆເພື່ອຈັດການກ່ຽວກັບທ້ອງຖິ່ນ ແລະ ພາກພື້ນ ເຊັ່ນ:

- ການເຂົ້າເຖິງການຕັ້ງຄ່າທີ່ຂຶ້ນກັບທ້ອງຖິ່ນ ແລະ ພາກພື້ນ ເຊັ່ນ ຮູບແບບຕົວເລກ, ສະກຸນເງິນ ແລະ ເຂດເວລາ.

- ການແປງເຂດເວລາ ແລະ ຄຳນວນຄ່າຊົດເຊີຍເວລາອອມແສງ (DST).

- ການປ່ຽນຕົວເລກໃຫ້ເປັນຂໍ້ຄວາມໃນພາສາໃດກໍໄດ້ທີ່ຮອງຮັບ.

## ນິຍາມ

### ທ້ອງຖິ່ນ ຫຼື ພາກພື້ນ

ຂໍ້ຄວາມທີ່ລວມພາສາ ແລະ ປະເທດໃນຮູບແບບ "la-CO".

ຕົວຢ່າງ, "en-US" ກົງກັບພາສາອັງກິດໃນສະຫະລັດ; "fr-BE" ກົງກັບພາສາຝຣັ່ງໃນແບນຊິກ, ແລະອື່ນໆ.

ໃນບາງສະຖານະການ ບໍ່ຈຳເປັນຕ້ອງໃຊ້ທ້ອງຖິ່ນແບບເຕັມ ແລະ ສາມາດລະບຸພຽງແຕ່ພາສາ ຫຼື ປະເທດໄດ້.

ຄຸນສົມບັດ ແລະ ວິທີການສ່ວນໃຫຍ່ຮັບເອົາ locale ເປັນ argument. ຫາກບໍ່ມີການລະບຸ locale, ຈະມີການໃຊ້ locale ຂອງສ່ວນຕິດຕໍ່ຜູ້ໃຊ້, ເຊິ່ງຖືກກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

### ເຂດເວລາ

ຂໍ້ຄວາມໃນຮູບແບບ "ພາກພື້ນ/ເມືອງ" ເຊັ່ນ "Europe/Berlin", ຫຼື ໄອດີເຂດເວລາ ເຊັ່ນ "UTC" ຫຼື "GMT-8:00". ອ້າງອີງໃສ່ໜ້າວິກິ ລາຍຊື່ເຂດເວລາໃນຖານຂໍ້ມູນ tz ສຳລັບລາຍຊື່ຂອງເຂດເວລາ ແລະ ໄອດີ ທີ່ເປັນໄປໄດ້.

ການລະບຸສາຍອັກຂະລະເຂດເວລາທີ່ບໍ່ຖືກຕ້ອງ ໃຫ້ກັບເມທອດໃດໜຶ່ງໃນບໍລິການ Region ຈະບໍ່ພາໃຫ້ເກີດຂໍ້ຜິດພາດໃນລະຫວ່າງການປະມວນຜົນ. ແຕ່ເມທອດຢ່າງ UTCDateTime ແລະ UTCNow ຈະສົ່ງຄືນຄ່າວັນທີ ແລະ ເວລາປັດຈຸບັນຂອງລະບົບປະຕິບັດການ.

The time offset between the timezone and the Greenwich Mean Time (GMT) is expressed in minutes.

ເວລາອອມແສງ (DST) ແມ່ນຄ່າຊົດເຊີຍເພີ່ມເຕີມ.

ຄ່າຊົດເຊີຍເຂດເວລາ ແລະ DST ອາດຈະເປັນບວກ ຫຼື ລົບກໍໄດ້.

## ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ Region, ຕ້ອງໂຫລດ ຫຼື ນຳເຂົ້າໄລບຣາຣີ ScriptForge ກ່ອນ:

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService

ຕົວຢ່າງດ້ານລຸ່ມນີ້ໃນ Basic ແລະ Python ສະແດງການສ້າງອິນສະແຕນຊ໌ບໍລິການ Region ແລະ ເຂົ້າເຖິງຄຸນສົມບັດ Country.

##### ໃນ Basic

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

##### ໃນ Python

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

## ຄຸນສົມບັດ

ຄຸນສົມບັດທັງໝົດທີ່ລະບຸດ້ານລຸ່ມນີ້ຮັບອາກິວເມັນ locale ເປັນຂໍ້ຄວາມ.

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ທ້ອງຖິ່ນ | ຄຳອະທິບາຍ
--- | --- | --- | --- | ---
Country | ແມ່ນ | String | "la‑CO" "CO" | ສົ່ງຄືນຊື່ປະເທດເປັນພາສາອັງກິດທີ່ກົງກັບພາກພື້ນທີ່ລະບຸ.
Currency | ແມ່ນ | String | "la-CO" "CO" | ສົ່ງຄືນລະຫັດສະກຸນເງິນ ISO 4217 ຂອງພາກພື້ນທີ່ລະບຸ.
DatePatterns | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຮູບແບບການຍອມຮັບວັນທີຂອງພາກພື້ນ.
DateSeparator | ແມ່ນ | String | "la-CO" | ສົ່ງຄືນຕົວແຍກວັນທີທີ່ໃຊ້ໃນພາກພື້ນທີ່ລະບຸ.
DayAbbrevNames | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" "la" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຊື່ຫຍໍ້ຂອງວັນໃນອາທິດ.
DayNames | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" "la" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຊື່ເຕັມຂອງວັນໃນອາທິດ.
DayNarrowNames | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" "la" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຕົວອັກສອນທຳອິດຂອງຊື່ວັນໃນອາທິດ.
DecimalPoint | ແມ່ນ | String | "la-CO" | ສົ່ງຄືນຕົວແຍກທົດສະນິຍົມທີ່ໃຊ້ໃນພາກພື້ນທີ່ລະບຸ.
Language | ແມ່ນ | String | "la-CO" "la" | ສົ່ງຄືນຊື່ພາສາເປັນພາສາອັງກິດຂອງພາກພື້ນທີ່ລະບຸ.
ListSeparator | ແມ່ນ | String | "la-CO" | ສົ່ງຄືນຕົວແຍກລາຍການທີ່ໃຊ້ໃນພາກພື້ນທີ່ລະບຸ.
MonthAbbrevNames | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" "la" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຊື່ຫຍໍ້ຂອງເດືອນ.
MonthNames | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" "la" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຊື່ເຕັມຂອງເດືອນ.
MonthNarrowNames | ແມ່ນ | ອາເຣຂໍ້ຄວາມ | "la-CO" "la" | ສົ່ງຄືນອາເຣຂໍ້ຄວາມທີ່ລະບຸຕົວອັກສອນທຳອິດຂອງຊື່ເດືອນ.
ThousandSeparator | ແມ່ນ | String | "la-CO" | ສົ່ງຄືນຕົວແຍກຫຼັກພັນທີ່ໃຊ້ໃນພາກພື້ນທີ່ລະບຸ.
TimeSeparator | ແມ່ນ | String | "la-CO" | ສົ່ງຄືນຕົວແຍກເວລາທີ່ໃຊ້ໃນພາກພື້ນທີ່ລະບຸ.

ລາຍຊື່ວິທີການໃນບໍລິການ Region
DSTOffset LocalDateTime | Number2Text TimeZoneOffset | UTCDateTime UTCNow

## DSTOffset

ຄຳນວນຄ່າຊົດເຊີຍເວລາອອມແສງ (DST) ເພີ່ມເຕີມເປັນນາທີ.

### ໄວຍາກອນ:

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

### ພາຣາມິເຕີ:

localdatetime: ວັນທີ ແລະ ເວລາທ້ອງຖິ່ນ.

timezone: ເຂດເວລາທີ່ຈະໃຊ້ຄຳນວນຄ່າຊົດເຊີຍ.

locale: ແມ່ນທ້ອງຖິ່ນທີ່ລະບຸປະເທດທີ່ຈະຖືກນຳມາຄິດໄລ່ຄ່າຜິດດ່ຽງ (offset), ເຊິ່ງສາມາດກຳນົດໄດ້ໃນຮູບແບບ "la-CO" ຫຼື "CO". ຄ່າມາດຕະຖານແມ່ນທ້ອງຖິ່ນທີ່ໄດ້ກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງການບໍລິການ Platform.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ຄຳນວນຄ່າຊົດເຊີຍໃນເຂດເວລາ "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 (minutes)
          aDateTime = DateSerial(2022, 1, 1) + TimeSerial(16, 0, 0)
          offset = oRegion.DSTOffset(aDateTime, "America/Los_Angeles", "US") ' 0 (minutes)

##### ໃນ Python

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

## LocalDateTime

ຄຳນວນວັນທີ ແລະ ເວລາທ້ອງຖິ່ນຈາກວັນທີ ແລະ ເວລາ UTC.

### ໄວຍາກອນ:

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

### ພາຣາມິເຕີ:

utcdatetime: ວັນທີ ແລະ ເວລາ UTC.

timezone: ເຂດເວລາທີ່ຈະໃຊ້ຄຳນວນເວລາທ້ອງຖິ່ນ.

ທ້ອງຖິ່ນ: ທ້ອງຖິ່ນທີ່ລະບຸປະເທດເພື່ອໃຊ້ໃນການຄຳນວນເວລາທ້ອງຖິ່ນ, ເຊິ່ງໃຫ້ມາໃນຮູບແບບ "la-CO" ຫຼື "CO". ຄ່າເລີ່ມຕົ້ນແມ່ນທ້ອງຖິ່ນທີ່ກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ວັນທີ 6 ມິຖຸນາ 2022 ເວລາ 10:30:45 (ໃຊ້ເປັນເວລາ UTC ຢູ່ບ່ອນນີ້)
          Dim UTCTime As Date, localTime As Date
          UTCTime = DateSerial(2022, 6, 23) + TimeSerial(10, 30, 45)
          ' ຄຳນວນເວລາທ້ອງຖິ່ນໃນ ເຊົາເປົາໂລ, ບຣາຊິລ
          ' ວັນທີ 6 ມິຖຸນາ 2022 ເວລາ 07:30:45
          localTime = oRegion.LocalDateTime(UTCTime, "America/Sao_Paulo", "BR")

##### ໃນ Python

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

## Number2Text

ປ່ຽນຕົວເລກ ແລະ ຄ່າເງິນໃຫ້ເປັນຂໍ້ຄວາມຂຽນ ສຳລັບພາສາໃດໜຶ່ງທີ່ຮອງຮັບໃນປັດຈຸບັນ.

ເບິ່ງລາຍຊື່ພາສາທີ່ຮອງຮັບທັງໝົດໄດ້ທີ່ XNumberText Interface.

### ໄວຍາກອນ:

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

### ພາຣາມິເຕີ:

number: ຕົວເລກທີ່ຈະປ່ຽນເປັນຂໍ້ຄວາມຂຽນ.

ທ້ອງຖິ່ນ: ທ້ອງຖິ່ນທີ່ກຳນົດພາສາທີ່ຈະແປງຕົວເລກໄປເປັນ, ໂດຍລະບຸໃນຮູບແບບ "la-CO" ຫຼື "la". ຄ່າເລີ່ມຕົ້ນແມ່ນທ້ອງຖິ່ນທີ່ໄດ້ກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ສົ່ງຄືນ "one hundred five"
          Dim numText As String
          numText = oRegion.Number2Text(105, "en-US")
          ' ສົ່ງຄືນ: "two point four two"
          numText = oRegion.Number2Text(2.42, "en-US")
          ' ສົ່ງຄືນ: "twenty-five euro and ten cents"
          numText = oRegion.Number2Text("EUR 25.10", "en-US")
          ' ສົ່ງຄືນ: "fifteenth"
          numText = oRegion.Number2Text("ordinal 15", "en-US")

##### ໃນ Python

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

ເພື່ອໃຫ້ໄດ້ລາຍຊື່ຂອງຄຳນຳໜ້າທັງໝົດທີ່ຮອງຮັບໃນພາສາໃດໜຶ່ງ, ໃຫ້ເອີ້ນໃຊ້ Number2Text ດ້ວຍອາຄິວເມນ "help" ພິເສດ. ໃນຕົວຢ່າງລຸ່ມນີ້, ສົມມຸດວ່າທ້ອງຖິ່ນ (locale) ຂອງທ່ານຖືກຕັ້ງເປັນ "en-US", ແລ້ວລາຍຊື່ຂອງຄຳນຳໜ້າທີ່ມີໃຫ້ສຳລັບ "en-US" ຈະຖືກສະແດງໂດຍ 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

ແຖວທຳອິດໃນກ່ອງຂໍ້ຄວາມຈະບໍ່ມີຄຳນຳໜ້າ, ເຊິ່ງໝາຍຄວາມວ່າມັນເປັນຮູບແບບມາດຕະຖານ.

ແຕ່ລະພາສາມີຊຸດຄຳນຳໜ້າທີ່ຮອງຮັບຂອງຕົນເອງ. ຈຳນວນຄຳນຳໜ້າທີ່ມີຢູ່ນັ້ນອາດແຕກຕ່າງກັນໄປຕາມແຕ່ລະພາສາ.

ເພື່ອເບິ່ງລາຍຊື່ຄຳນຳໜ້າສຳລັບພາສາ ຫຼື ທ້ອງຖິ່ນໃດໜຶ່ງ, ສາມາດລະບຸເປັນອາກິວເມັນທີສອງໃນ Number2Text ໄດ້.

          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

ສົ່ງຄືນຄ່າຊົດເຊີຍລະຫວ່າງ GMT ແລະ ເຂດເວລາທີ່ລະບຸ ເປັນນາທີ.

### ໄວຍາກອນ:

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

### ພາຣາມິເຕີ:

timezone: ເຂດເວລາທີ່ຈະໃຊ້ຄຳນວນຄ່າຊົດເຊີຍທຽບກັບ GMT.

locale: ພາສາຖິ່ນທີ່ລະບຸປະເທດ ເຊິ່ງຈະຖືກນຳມາຄຳນວນຫາຄ່າອັອບເຊັດ, ໂດຍໃຫ້ມາໃນຮູບແບບ "la-CO" ຫຼື "CO". ຄ່າເລີ່ມຕົ້ນແມ່ນພາສາຖິ່ນທີ່ຖືກກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

### ຕົວຢ່າງ:

##### ໃນ Basic

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

##### ໃນ Python

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

## UTCDateTime

ສົ່ງຄືນວັນທີ ແລະ ເວລາ UTC ໂດຍພິຈາລະນາຈາກວັນທີ ແລະ ເວລາທ້ອງຖິ່ນໃນເຂດເວລາທີ່ລະບຸ.

### ໄວຍາກອນ:

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

### ພາຣາມິເຕີ:

localdatetime: ວັນທີ ແລະ ເວລາທ້ອງຖິ່ນໃນເຂດເວລາສະເພາະ.

timezone: ເຂດເວລາຂອງອາກິວເມັນ localdatetime ທີ່ລະບຸ.

ທ້ອງຖິ່ນ: ທ້ອງຖິ່ນທີ່ລະບຸປະເທດສຳລັບອາກິວເມນ localdatetime ທີ່ໃຫ້ມາ, ເຊິ່ງສະແດງໃນຮູບແບບ "la-CO" ຫຼື "CO". ຄ່າເລີ່ມຕົ້ນແມ່ນທ້ອງຖິ່ນທີ່ກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ວັນທີ/ເວລາ ໃນເບີລິນ, 23 ມິຖຸນາ 2022 ເວລາ 14:30:00
          Dim localDT As Date, utcTime As Date
          localDT = DateSerial(2022, 6, 23) + TimeSerial(14, 30, 0)
          ' ວັນທີ/ເວລາ UTC ແມ່ນ 23 ມິຖຸນາ 2022 ເວລາ 12:30:00
          utcTime = oRegion.UTCDateTime(localDT, "Europe/Berlin", "DE")

##### ໃນ Python

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

## UTCNow

ສົ່ງຄືນວັນທີ ແລະ ເວລາ UTC ປັດຈຸບັນ.

ວິທີການນີ້ໃຊ້ວັນທີ ແລະ ເວລາປັດຈຸບັນຂອງລະບົບປະຕິບັດການຂອງທ່ານເພື່ອຄຳນວນເວລາ UTC.

### ໄວຍາກອນ:

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

### ພາຣາມິເຕີ:

timezone: ເຂດເວລາທີ່ຈະໃຊ້ຄິດໄລ່ເວລາ UTC ປັດຈຸບັນ.

locale: ໂລແຄລ (ການກຳນົດທ້ອງຖິ່ນ) ທີ່ລະບຸປະເທດທີ່ຈະໃຊ້ຄິດໄລ່ເວລາ UTC ປັດຈຸບັນ, ໂດຍໃຫ້ມາໃນຮູບແບບ "la-CO" ຫຼື "CO". ຄ່າເລີ່ມຕົ້ນແມ່ນໂລແຄລທີ່ກຳນົດໄວ້ໃນຄຸນສົມບັດ OfficeLocale ຂອງບໍລິການ Platform.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ສົມມຸດວ່າເວລາຂອງລະບົບປະຕິບັດການແມ່ນ ວັນທີ 23 ມິຖຸນາ 2022 ເວລາ 10:42:00
          ' ຖ້າຄອມພິວເຕີຢູ່ໃນ Europe/Berlin, ເວລາ UTC ຈະແມ່ນ ວັນທີ 23 ມິຖຸນາ 2022 ເວລາ 08:42:00
          Dim utcTime As Date
          utcTime = oRegion.UTCNow("Europe/Berlin", "DE")

##### ໃນ Python

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

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ບໍລິການ ScriptForge.Platform

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!