{"id":20424609,"url":"https://github.com/bahmanm/persianutils","last_synced_at":"2025-08-01T16:39:54.291Z","repository":{"id":12714966,"uuid":"15387568","full_name":"bahmanm/persianutils","owner":"bahmanm","description":"A collection of utilities for Scala/Java developers who are targeting Persian (Farsi) speaking users.","archived":false,"fork":false,"pushed_at":"2025-04-01T11:48:47.000Z","size":98,"stargazers_count":29,"open_issues_count":6,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-01T12:38:51.830Z","etag":null,"topics":["date","farsi","java","localization","scala"],"latest_commit_sha":null,"homepage":"https://matrix.to/#/#persianutils:matrix.org","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bahmanm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"bahmanm","ko_fi":"bahmanm","liberapay":"bahmanm"}},"created_at":"2013-12-23T04:25:21.000Z","updated_at":"2025-03-08T04:25:05.000Z","dependencies_parsed_at":"2022-09-10T12:22:37.294Z","dependency_job_id":"baf030c0-f721-4dfe-b333-94946c4991c3","html_url":"https://github.com/bahmanm/persianutils","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmanm%2Fpersianutils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmanm%2Fpersianutils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmanm%2Fpersianutils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahmanm%2Fpersianutils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bahmanm","download_url":"https://codeload.github.com/bahmanm/persianutils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248617199,"owners_count":21134190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["date","farsi","java","localization","scala"],"created_at":"2024-11-15T07:10:14.164Z","updated_at":"2025-04-12T18:44:28.407Z","avatar_url":"https://github.com/bahmanm.png","language":"Scala","funding_links":["https://github.com/sponsors/bahmanm","https://ko-fi.com/bahmanm","https://liberapay.com/bahmanm"],"categories":[],"sub_categories":[],"readme":"# 1 Introduction \n[![CircleCI](https://dl.circleci.com/status-badge/img/circleci/UMKeFZ8ns9T9vi5aquTfVT/BwGU1tm7aeza7w99ccaEMW/tree/master.svg?style=svg\u0026circle-token=CCIPRJ_SpcW3fS7iXjTT8gJQcYhei_ad25651fdb49ac759b7725219d8c85b88907fe39)](https://dl.circleci.com/status-badge/redirect/circleci/UMKeFZ8ns9T9vi5aquTfVT/BwGU1tm7aeza7w99ccaEMW/tree/master)\n[![Matrix](https://img.shields.io/matrix/github-bahmanm-persianutils%3Amatrix.org?server_fqdn=matrix.org\u0026style=flat\u0026logo=matrix\u0026logoColor=white\u0026color=0e80c0)](https://matrix.to/#/#github-bahmanm-persianutils:matrix.org)\n![Maven Central Version](https://img.shields.io/maven-central/v/com.bahmanm/persianutils_3?style=flat\u0026logo=scala\u0026logoColor=white\u0026label=3.x)\n![Maven Central Version](https://img.shields.io/maven-central/v/com.bahmanm/persianutils_2.13?style=flat\u0026logo=scala\u0026logoColor=white\u0026label=2.13.x)\n![Maven Central Version](https://img.shields.io/maven-central/v/com.bahmanm/persianutils_2.12?style=flat\u0026logo=scala\u0026logoColor=white\u0026label=2.12.x)\n![Maven Central Version](https://img.shields.io/maven-central/v/com.bahmanm/persianutils_2.11?style=flat\u0026logo=scala\u0026logoColor=white\u0026label=2.11.x)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fbahmanm%2Fpersianutils.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fbahmanm%2Fpersianutils?ref=badge_shield)\n\nA collection of utilities for Scala/Java developers who are targeting Persian (Farsi) speaking users.\n\n\u003cimg alt=\"persianutils logo\" src=\"https://imgur.com/j1cWx7m.png\" style=\"height: 300px; width: 300px; vertical-align: top\" /\u003e \n\n### 1.1  Scala Compatibility\n\n| ⬇ persianutils ❚ scala ➡ | 2.10.x | 2.11.x | 2.12.x | 2.13.x | 3.x  |\n|----------------------------|--------|--------|--------|--------|------|\n| 5.x                        |   ❌   |   ❌   |  ✅   |   ✅   |  ✅  |\n| 4.x                        |   ❌   |   ✅   |  ✅   |   ✅   |  ❌  |\n| 3.x                        |   ❌   |   ✅   |  ✅   |   ❌   |  ❌  |\n| 2.x                        |   ✅   |   ✅   |  ❌   |   ❌   |  ❌  |\n\n# 2 Adding To Your Project \n\n### 2.1 SBT \n\n```scala\nlibraryDependencies ++= Seq(\n    \"com.bahmanm\" %% \"persianutils\" % \"5.0\"\n)\n```\n\n### 2.2 Maven \n\nWith Scala 3.x:\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.bahmanm\u003c/groupId\u003e\n        \u003cartifactId\u003epersianutils_3\u003c/artifactId\u003e\n        \u003cversion\u003e5.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nWith Scala 2.13.x:\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.bahmanm\u003c/groupId\u003e\n        \u003cartifactId\u003epersianutils_2.13\u003c/artifactId\u003e\n        \u003cversion\u003e5.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\nWith Scala 2.12.x:\n\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.bahmanm\u003c/groupId\u003e\n        \u003cartifactId\u003epersianutils_2.12\u003c/artifactId\u003e\n        \u003cversion\u003e5.0\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n## 3 What Is Included? \n\nThis is a short review of what you will find in _persianutils_:\n\n### 3.1 DateConverter \n\n`com.bahmanm.persianutils.DateConverter` is the Scala port of the original algorithm (in Fortran) [The Persian calendar for 3000 years](http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm).\n\n#### 3.1.1 Scala \n\n```scala\nimport com.bahmanm.persianutils.DateConverter._\n\n// NOTE: months and days are 1-indexed, i.e. December is 12 or Farvardin is 1\nval gDate1 = SimpleDate(2013, 12, 11)\nval pDate1 = gregorianToPersian(gDate1)\nprint(pDate1)  // OUTPUT: SimpleDate(1392,9,20) -\u003e 20om Azar 1392\n\n\nval pDate2 = SimpleDate(1392, 1, 1)\nval gDate2 = persianToGregorian(pDate2)\nprint(gDate2) // OUTPUT: SimpleDate(2013,3,21) -\u003e March 21st 2013\n\n\nval d = java.util.Calendar.getInstance().getTime()\nval gDate3 = SimpleDate(date) // iniatlising from a java.util.Date\nval pDate3 = gregorianToPersian(gDate3)\n\n\nval ds = \"1392/09/24\"\nval pDate4 = SimpleDate(ds) // initialising from a String\nval gDate4 = persianToGregorian(pDate4)\n```\n\n#### 3.1.2 Java \n\n```java\nimport com.bahmanm.persianutils.DateConverter;\n\npublic class Main {\n\n  public static void main(String[] args) {\n    DateConverter.SimpleDate pd1 = new DateConverter.SimpleDate(1392, 11, 11);\n    DateConverter.SimpleDate gd1 = DateConverter.persianToGregorian(pd1);\n    System.out.println(gd1);\n\n    DateConverter.SimpleDate gd2 = new DateConverter.SimpleDate(2014, 2, 4);\n    DateConverter.SimpleDate pd2 = DateConverter.gregorianToPersian(gd2);\n    System.out.println(pd2);\n  }\n\n}\n```\n\n### 3.2 NumToWord\n\n```scala\nimport com.bahmanm.persianutils.NumToWord\n\nassert(NumToWord(100) == \"صد\")\nassert(NumToWord(299792458) == \"دویست و نود و نه میلیون و هفتصد و نود و دو هزار و چهارصد و پنجاه و هشت\")\n```\n\n\n\n\n## License\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fbahmanm%2Fpersianutils.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fbahmanm%2Fpersianutils?ref=badge_large)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahmanm%2Fpersianutils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbahmanm%2Fpersianutils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahmanm%2Fpersianutils/lists"}