|
- // import PersianDate from "./dist/PersianDate.js";
- const PersianDate = require("./dist/PersianDate.js");
- const perf = require("@alireza-ab/performance-check");
-
- let persianDate = new PersianDate();
-
- ////////////////////------------- ATTENTION -------------////////////////////
- // please change now date and start test //
- /////////////////////////////////////////////////////////////////////////////
-
- const now = {
- year: 1401,
- month: 3,
- date: 31,
- };
-
- test("create date and return now", () => {
- perf.start();
- let date = new Date();
- persianDate.now();
- expect(persianDate.year()).toBe(now.year);
- expect(persianDate.month()).toBe(now.month);
- expect(persianDate.date()).toBe(now.date);
- expect(persianDate.hour()).toBe(date.getHours());
- expect(persianDate.minute()).toBe(date.getMinutes());
- expect(persianDate.second()).toBe(date.getSeconds());
- expect(persianDate.millisecond()).toBe(date.getMilliseconds());
-
- expect(persianDate.calendar("g").toDate().toString()).toBe(date.toString());
- expect(new PersianDate(null, "g").toDate().toString()).toBe(date.toString());
- });
-
- test("create date with date and calendar", () => {
- expect(
- new PersianDate(["2020", "7", "27", "11", "5", "8", "452"]).toString(
- "datetime:ss.c"
- )
- ).toBe("1399/05/06 11:05:08.452");
- expect(new PersianDate("2020-8-27").toString("datetime:ss.c")).toBe(
- "1399/06/06 00:00:00.0"
- );
-
- expect(new PersianDate(["2021", "5", 8], "g").toString("datetime:ss.c")).toBe(
- "2021-05-08 00:00:00.0"
- );
- expect(new PersianDate("2020-8-27", "g").toString("datetime:ss.c")).toBe(
- "2020-08-27 00:00:00.0"
- );
-
- expect(new PersianDate(["1400", "5", 8], "j").toString("datetime:ss.c")).toBe(
- "1400/05/08 00:00:00.0"
- );
- expect(new PersianDate("1400/8/27", "j").toString("datetime:ss.c")).toBe(
- "1400/08/27 00:00:00.0"
- );
- });
-
- test("now function", () => {
- persianDate.calendar("j").now();
- let date = new Date();
- expect(persianDate.year()).toBe(now.year);
- expect(persianDate.month()).toBe(now.month);
- expect(persianDate.date()).toBe(now.date);
- expect(persianDate.hour()).toBe(date.getHours());
- expect(persianDate.minute()).toBe(date.getMinutes());
- expect(persianDate.second()).toBe(date.getSeconds());
- expect(persianDate.millisecond()).toBe(date.getMilliseconds());
- expect(persianDate.calendar("g").now().toString("M/D/y, h:mm:ss A")).toBe(
- new Date().toLocaleString()
- );
- });
-
- ////////////////////------------- ATTENTION -------------////////////////////
- // "setDate" is deprecated. "fromGregorian" replaced this. //
- /////////////////////////////////////////////////////////////////////////////
-
- /*test('setDate function with all parameters', () => {
- persianDate.setDate('2020', '7', '27', '11', '5', '8', '452');
- expect(persianDate.year()).toBe(1399);
- expect(persianDate.month()).toBe(5);
- expect(persianDate.date()).toBe(6);
- expect(persianDate.hour()).toBe(11);
- expect(persianDate.minute()).toBe(5);
- expect(persianDate.second()).toBe(8);
- expect(persianDate.millisecond()).toBe(452);
- });
-
- test('setDate function with Date parameter', () => {
- persianDate.setDate(new Date());
- expect(persianDate.year()).toBe(now.year);
- expect(persianDate.month()).toBe(now.month);
- expect(persianDate.date()).toBe(now.date);
- expect(persianDate.hour()).toBe((new Date()).getHours());
- expect(persianDate.minute()).toBe((new Date()).getMinutes());
- expect(persianDate.second()).toBe((new Date()).getSeconds());
- // expect(persianDate.millisecond()).toBe((new Date()).getMilliseconds());
- });
-
- test('setDate function with string parameter', () => {
- persianDate.setDate('2020-8-27');
- expect(persianDate.year()).toBe(1399);
- expect(persianDate.month()).toBe(6);
- expect(persianDate.date()).toBe(6);
- expect(persianDate.hour()).toBe(0);
- expect(persianDate.minute()).toBe(0);
- expect(persianDate.second()).toBe(0);
- expect(persianDate.millisecond()).toBe(0);
- });*/
-
- test("parse function", () => {
- persianDate.calendar("j").parse("1399", "6", "6", "14", "45");
- expect(persianDate.year()).toBe(1399);
- expect(persianDate.month()).toBe(6);
- expect(persianDate.date()).toBe(6);
- expect(persianDate.hour()).toBe(14);
- expect(persianDate.minute()).toBe(45);
- expect(persianDate.second()).toBe(0);
- expect(persianDate.millisecond()).toBe(0);
- persianDate.calendar("g").parse("2020", "6", "6", "14", "45");
- expect(persianDate.toDate()).toEqual(
- new Date("2020", "5", "6", "14", "45", 0, 0)
- );
- });
-
- test("parse function with string parameter", () => {
- persianDate.calendar("j").parse("1399-6-6 14:45");
- expect(persianDate.year()).toBe(1399);
- expect(persianDate.month()).toBe(6);
- expect(persianDate.date()).toBe(6);
- expect(persianDate.hour()).toBe(14);
- expect(persianDate.minute()).toBe(45);
- expect(persianDate.second()).toBe(0);
- expect(persianDate.millisecond()).toBe(0);
- persianDate.calendar("g").parse("2020-6-6 14:45");
- expect(persianDate.toDate()).toEqual(
- new Date("2020", "5", "6", "14", "45", 0, 0)
- );
- });
-
- test("parse function with array parameter", () => {
- persianDate.calendar("j").parse(["1399", "6", "6", "14", "45", "4", "54"]);
- expect(persianDate.year()).toBe(1399);
- expect(persianDate.month()).toBe(6);
- expect(persianDate.date()).toBe(6);
- expect(persianDate.hour()).toBe(14);
- expect(persianDate.minute()).toBe(45);
- expect(persianDate.second()).toBe(4);
- expect(persianDate.millisecond()).toBe(54);
- persianDate.calendar("g").parse(["2020", "6", "6", "14", "45", "4", "54"]);
- expect(persianDate.toDate()).toEqual(
- new Date("2020", "5", "6", "14", "45", "4", "54")
- );
- });
-
- test("parse function with object parameter", () => {
- persianDate.calendar("j").parse({
- year: "1399",
- M: "6",
- date: "6",
- hour: "14",
- minutes: "45",
- s: "4",
- ms: "54",
- });
- expect(persianDate.year()).toBe(1399);
- expect(persianDate.month()).toBe(6);
- expect(persianDate.date()).toBe(6);
- expect(persianDate.hour()).toBe(14);
- expect(persianDate.minute()).toBe(45);
- expect(persianDate.second()).toBe(4);
- expect(persianDate.millisecond()).toBe(54);
- persianDate.calendar("g").parse({
- year: "2020",
- M: "6",
- date: "6",
- hour: "14",
- minutes: "45",
- s: "4",
- ms: "54",
- });
- expect(persianDate.toDate()).toEqual(
- new Date("2020", "5", "6", "14", "45", "4", "54")
- );
- });
-
- test("parse function without parameter", () => {
- expect(persianDate.calendar("j").parse()).toEqual(persianDate.now());
- expect(persianDate.calendar("g").parse().toDate().toString()).toEqual(
- new Date().toString()
- );
- });
-
- test("isLeapYear function", () => {
- // static
- expect(PersianDate.isLeapYear("j", 1399)).toBe(true);
- expect(PersianDate.isLeapYear("j", 1400)).toBe(false);
- expect(PersianDate.isLeapYear("g", 2020)).toBe(true);
- expect(PersianDate.isLeapYear("g", 2021)).toBe(false);
- // non static
- expect(persianDate.calendar("j").isLeapYear(1399)).toBe(true);
- expect(persianDate.calendar("j").parse(1400).isLeapYear()).toBe(false);
- expect(persianDate.calendar("g").parse(2020).isLeapYear()).toBe(true);
- expect(persianDate.calendar("g").isLeapYear(2021)).toBe(false);
- });
-
- test("isValid function with valid date", () => {
- // static
- expect(PersianDate.isValid("j", 1399, 12, 30, 10, 20, 15, 123)).toBe(true);
- expect(PersianDate.isValid("g", 2020, 8, 31, 10, 20, 15, 123)).toBe(true);
- // non static
- expect(persianDate.calendar("j").isValid()).toBe(true);
- expect(persianDate.calendar("g").isValid()).toBe(true);
- });
-
- test("isValid function with invalid date", () => {
- // static
- expect(PersianDate.isValid("j", 1399, 45)).toBe(false);
- expect(PersianDate.isValid("j", 1399, 12, 31)).toBe(false);
- expect(PersianDate.isValid("g", 2020, 45)).toBe(false);
- expect(PersianDate.isValid("g", 2020, 2, 30)).toBe(false);
- // non static
- persianDate.calendar("j").parse("1399", "45");
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("j").parse("1399", "12", "31");
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-45");
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-2-30");
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("isValid function with valid time", () => {
- // static
- expect(PersianDate.isValid("j", 1399, 10, 10, 12)).toBe(true);
- expect(PersianDate.isValid("g", 2020, 10, 10, 12)).toBe(true);
- // non static
- persianDate.calendar("j").parse("1399/12/20 12:12");
- expect(persianDate.isValid()).toBe(true);
- });
-
- test("isValid function with invalid time", () => {
- // static
- expect(PersianDate.isValid("j", 1399, 10, 10, 25)).toBe(false);
- expect(PersianDate.isValid("g", 2020, 10, 10, 25)).toBe(false);
- // non static
- persianDate.calendar("j").parse("1399/12/20 45:12");
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("getDaysInMonth function", () => {
- // static
- expect(PersianDate.getDaysInMonth("j", 1398, 12)).toBe(29);
- expect(PersianDate.getDaysInMonth("j", 1399, 12)).toBe(30);
- expect(PersianDate.getDaysInMonth("j", 1399, 11)).toBe(30);
- expect(PersianDate.getDaysInMonth("j", 1399, 10)).toBe(30);
- expect(PersianDate.getDaysInMonth("j", 1399, 9)).toBe(30);
- expect(PersianDate.getDaysInMonth("j", 1399, 8)).toBe(30);
- expect(PersianDate.getDaysInMonth("j", 1399, 7)).toBe(30);
- expect(PersianDate.getDaysInMonth("j", 1399, 6)).toBe(31);
- expect(PersianDate.getDaysInMonth("j", 1399, 5)).toBe(31);
- expect(PersianDate.getDaysInMonth("j", 1399, 4)).toBe(31);
- expect(PersianDate.getDaysInMonth("j", 1399, 3)).toBe(31);
- expect(PersianDate.getDaysInMonth("j", 1399, 2)).toBe(31);
- expect(PersianDate.getDaysInMonth("j", 1399, 1)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 1)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 2)).toBe(29);
- expect(PersianDate.getDaysInMonth("g", 2020, 3)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 4)).toBe(30);
- expect(PersianDate.getDaysInMonth("g", 2020, 5)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 6)).toBe(30);
- expect(PersianDate.getDaysInMonth("g", 2020, 7)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 8)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 9)).toBe(30);
- expect(PersianDate.getDaysInMonth("g", 2020, 10)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2020, 11)).toBe(30);
- expect(PersianDate.getDaysInMonth("g", 2020, 12)).toBe(31);
- expect(PersianDate.getDaysInMonth("g", 2021, 2)).toBe(28);
- // non static
- persianDate.calendar("j").parse(1398, 12);
- expect(persianDate.getDaysInMonth()).toBe(29);
- persianDate.year(1399).month(12);
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.month(11);
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.month(10);
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.month(9);
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.month(8);
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.month(7);
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.month(6);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.month(5);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.month(4);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.month(3);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.month(2);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.parse(1399, 1);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.calendar("g").parse(2020, 1);
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(29);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(30);
- persianDate.addMonth();
- expect(persianDate.getDaysInMonth()).toBe(31);
- persianDate.parse(2021, 2);
- expect(persianDate.getDaysInMonth()).toBe(28);
- });
-
- test("addYear function without parameter", () => {
- persianDate.calendar("j").parse("1399").addYear();
- expect(persianDate.year()).toBe(1400);
- expect(persianDate.month()).toBe(1);
- expect(persianDate.date()).toBe(1);
- persianDate.calendar("g").parse("2020").addYear();
- expect(persianDate.year()).toBe(2021);
- expect(persianDate.month()).toBe(1);
- expect(persianDate.date()).toBe(1);
- });
-
- test("addYear function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.addYear("1");
- expect(persianDate.year()).toBe(1400);
- expect(persianDate.month()).toBe(12);
- expect(persianDate.date()).toBe(29);
- persianDate.calendar("g").parse("2020-2-29").addYear();
- expect(persianDate.year()).toBe(2021);
- expect(persianDate.month()).toBe(2);
- expect(persianDate.date()).toBe(28);
- });
-
- test("addYear function without check date", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.addYear("1", false);
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-2-29");
- persianDate.addYear("1", false);
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("addMonth function without parameter", () => {
- persianDate.calendar("j").parse("1399-12-8");
- persianDate.addMonth();
- expect(persianDate.toString()).toBe("1400/01/08");
- persianDate.calendar("g").parse("2020-12-8");
- persianDate.addMonth();
- expect(persianDate.toString()).toBe("2021-01-08");
- });
-
- test("addMonth function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-6-31");
- persianDate.addMonth("4");
- expect(persianDate.toString()).toBe("1399/10/30");
- persianDate.calendar("g").parse("2020-1-31");
- persianDate.addMonth("3");
- expect(persianDate.toString()).toBe("2020-04-30");
- });
-
- test("addMonth function without check date", () => {
- persianDate.calendar("j").parse("1399-6-31");
- persianDate.addMonth("1", false);
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-3-31");
- persianDate.addMonth("1", false);
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("addDay function without parameter", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.addDay();
- expect(persianDate.toString()).toBe("1400/01/01");
- persianDate.calendar("g").parse("2020-12-31");
- persianDate.addDay();
- expect(persianDate.toString()).toBe("2021-01-01");
- });
-
- test("addDay function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.addDay("32");
- expect(persianDate.toString()).toBe("1400/02/01");
- persianDate.calendar("g").parse("2020-12-31");
- persianDate.addDay("32");
- expect(persianDate.toString()).toBe("2021-02-01");
- });
-
- test("addDay function without check date", () => {
- persianDate.calendar("j").parse("1399-12-1");
- persianDate.addDay("30", false);
- expect(persianDate.toString()).toBe("1400/01/01");
- persianDate.calendar("g").parse("2020-12-1");
- persianDate.addDay("31", false);
- expect(persianDate.toString()).toBe("2021-01-01");
- });
-
- test("addQuarter function without parameter", () => {
- persianDate.calendar("j").parse("1399-12-1");
- persianDate.addQuarter();
- expect(persianDate.toString()).toBe("1400/03/01");
- persianDate.calendar("g").parse("2020-12-1");
- persianDate.addQuarter();
- expect(persianDate.toString()).toBe("2021-03-01");
- });
-
- test("addQuarter function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-6-31");
- persianDate.addQuarter("2");
- expect(persianDate.toString()).toBe("1399/12/30");
- persianDate.calendar("g").parse("2020-6-30");
- persianDate.addQuarter("2");
- expect(persianDate.toString()).toBe("2020-12-30");
- });
-
- test("addQuarter function without check date", () => {
- persianDate.calendar("j").parse("1399-3-31");
- persianDate.addQuarter("6", false);
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-3-31");
- persianDate.addQuarter("6", false);
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("addWeek function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31");
- persianDate.addWeek();
- expect(persianDate.toString()).toBe("1399/07/07");
- persianDate.calendar("g").parse("2020-6-30");
- persianDate.addWeek();
- expect(persianDate.toString()).toBe("2020-07-07");
- });
-
- test("addWeek function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-6-1");
- persianDate.addWeek("3");
- expect(persianDate.toString()).toBe("1399/06/22");
- persianDate.calendar("g").parse("2020-6-1");
- persianDate.addWeek("3");
- expect(persianDate.toString()).toBe("2020-06-22");
- });
-
- test("addWeek function without check date", () => {
- persianDate.calendar("j").parse("1399-12-1");
- persianDate.addWeek("6", false);
- expect(persianDate.toString()).toBe("1400/01/13");
- persianDate.calendar("g").parse("2020-12-1");
- persianDate.addWeek("6", false);
- expect(persianDate.toString()).toBe("2021-01-12");
- });
-
- test("addHour function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 23:10");
- persianDate.addHour();
- expect(persianDate.toString("datetime")).toBe("1399/07/01 00:10");
- persianDate.calendar("g").parse("2020-6-30 23:10");
- persianDate.addHour();
- expect(persianDate.toString("datetime")).toBe("2020-07-01 00:10");
- });
-
- test("addHour function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 23:10");
- persianDate.addHour("78");
- expect(persianDate.toString("datetime")).toBe("1399/09/04 05:10");
- persianDate.calendar("g").parse("2020-8-31 23:10");
- persianDate.addHour("78");
- expect(persianDate.toString("datetime")).toBe("2020-09-04 05:10");
- });
-
- test("addHour function without check time", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.addHour("24", false);
- expect(persianDate.toString("datetime")).toBe("1400/01/01 00:00");
- persianDate.calendar("g").parse("2020-12-31");
- persianDate.addHour("24", false);
- expect(persianDate.toString("datetime")).toBe("2021-01-01 00:00");
- });
-
- test("addMinute function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 23:59");
- persianDate.addMinute();
- expect(persianDate.toString("datetime")).toBe("1399/07/01 00:00");
- persianDate.calendar("g").parse("2020-6-30 23:59");
- persianDate.addMinute();
- expect(persianDate.toString("datetime")).toBe("2020-07-01 00:00");
- });
-
- test("addMinute function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 23:10");
- persianDate.addMinute("1440");
- expect(persianDate.toString("datetime")).toBe("1399/09/01 23:10");
- persianDate.calendar("g").parse("2020-8-31 23:10");
- persianDate.addMinute("1440");
- expect(persianDate.toString("datetime")).toBe("2020-09-01 23:10");
- });
-
- test("addMinute function without check time", () => {
- persianDate.calendar("j").parse("1399-12-30 23:59");
- persianDate.addMinute("1", false);
- expect(persianDate.toString("datetime")).toBe("1400/01/01 00:00");
- persianDate.calendar("g").parse("2020-12-31 23:59");
- persianDate.addMinute("1", false);
- expect(persianDate.toString("datetime")).toBe("2021-01-01 00:00");
- });
-
- test("addSecond function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 23:59:59");
- persianDate.addSecond();
- expect(persianDate.toString("datetime:ss")).toBe("1399/07/01 00:00:00");
- persianDate.calendar("g").parse("2020-6-30 23:59:59");
- persianDate.addSecond();
- expect(persianDate.toString("datetime:ss")).toBe("2020-07-01 00:00:00");
- });
-
- test("addSecond function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 23:00");
- persianDate.addSecond("3600");
- expect(persianDate.toString("datetime:ss")).toBe("1399/09/01 00:00:00");
- persianDate.calendar("g").parse("2020-8-31 23:00");
- persianDate.addSecond("3600");
- expect(persianDate.toString("datetime:ss")).toBe("2020-09-01 00:00:00");
- });
-
- test("addSecond function without check time", () => {
- persianDate.calendar("j").parse("1399-12-30 23:59:59");
- persianDate.addSecond("1", false);
- expect(persianDate.toString("datetime:ss")).toBe("1400/01/01 00:00:00");
- persianDate.calendar("g").parse("2020-12-31 23:59:59");
- persianDate.addSecond("1", false);
- expect(persianDate.toString("datetime:ss")).toBe("2021-01-01 00:00:00");
- });
-
- test("addMillisecond function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 23:59:59.999");
- persianDate.addMillisecond();
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/07/01 00:00:00.0");
- persianDate.calendar("g").parse("2020-6-30 23:59:59.999");
- persianDate.addMillisecond();
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-07-01 00:00:00.0");
- });
-
- test("addMillisecond function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 23:00");
- persianDate.addMillisecond("3600000");
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/09/01 00:00:00.0");
- persianDate.calendar("g").parse("2020-8-31 23:00");
- persianDate.addMillisecond("3600000");
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-09-01 00:00:00.0");
- });
-
- test("addMillisecond function without check time", () => {
- persianDate.calendar("j").parse("1399-12-30 23:59:59.999");
- persianDate.addMillisecond("1", false);
- expect(persianDate.toString("datetime:ss.c")).toBe("1400/01/01 00:00:00.0");
- persianDate.calendar("g").parse("2020-12-31 23:59:59.999");
- persianDate.addMillisecond("1", false);
- expect(persianDate.toString("datetime:ss.c")).toBe("2021-01-01 00:00:00.0");
- });
-
- test("subYear function without parameter", () => {
- persianDate.calendar("j").parse("1400").subYear();
- expect(persianDate.toString()).toBe("1399/01/01");
- persianDate.calendar("g").parse("2021").subYear();
- expect(persianDate.toString()).toBe("2020-01-01");
- });
-
- test("subYear function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.subYear("1");
- expect(persianDate.toString()).toBe("1398/12/29");
- persianDate.calendar("g").parse("2020-2-29");
- persianDate.subYear("1");
- expect(persianDate.toString()).toBe("2019-02-28");
- });
-
- test("subYear function without check date", () => {
- persianDate.calendar("j").parse("1399-12-30");
- persianDate.subYear("1", false);
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-2-29");
- persianDate.subYear("1", false);
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("subMonth function without parameter", () => {
- persianDate.calendar("j").parse("1399-1-8");
- persianDate.subMonth();
- expect(persianDate.toString()).toBe("1398/12/08");
- persianDate.calendar("g").parse("2020-1-8");
- persianDate.subMonth();
- expect(persianDate.toString()).toBe("2019-12-08");
- });
-
- test("subMonth function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-2-31");
- persianDate.subMonth("4");
- expect(persianDate.toString()).toBe("1398/10/30");
- persianDate.calendar("g").parse("2020-7-31");
- persianDate.subMonth("3");
- expect(persianDate.toString()).toBe("2020-04-30");
- });
-
- test("subMonth function without check date", () => {
- persianDate.calendar("j").parse("1399-1-31");
- persianDate.subMonth("1", false);
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2021-12-31");
- persianDate.subMonth("1", false);
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("subDay function without parameter", () => {
- persianDate.calendar("j").parse("1400-1-1");
- persianDate.subDay();
- expect(persianDate.toString()).toBe("1399/12/30");
- persianDate.calendar("g").parse("2021-1-1");
- persianDate.subDay();
- expect(persianDate.toString()).toBe("2020-12-31");
- });
-
- test("subDay function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-1-30");
- persianDate.subDay("32");
- expect(persianDate.toString()).toBe("1398/12/27");
- persianDate.calendar("g").parse("2020-3-30");
- persianDate.subDay("32");
- expect(persianDate.toString()).toBe("2020-02-27");
- });
-
- test("subDay function without check date", () => {
- persianDate.calendar("j").parse("1400-1-1");
- persianDate.subDay("30", false);
- expect(persianDate.toString()).toBe("1399/12/01");
- persianDate.calendar("g").parse("2020-1-1");
- persianDate.subDay("31", false);
- expect(persianDate.toString()).toBe("2019-12-01");
- });
-
- test("subQuarter function without parameter", () => {
- persianDate.calendar("j").parse("1399-2-1");
- persianDate.subQuarter();
- expect(persianDate.toString()).toBe("1398/11/01");
- persianDate.calendar("g").parse("2020-2-1");
- persianDate.subQuarter();
- expect(persianDate.toString()).toBe("2019-11-01");
- });
-
- test("subQuarter function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-6-31");
- persianDate.subQuarter("2");
- expect(persianDate.toString()).toBe("1398/12/29");
- persianDate.calendar("g").parse("2020-8-30");
- persianDate.subQuarter("2");
- expect(persianDate.toString()).toBe("2020-02-29");
- });
-
- test("subQuarter function without check date", () => {
- persianDate.calendar("j").parse("1399-3-31");
- persianDate.subQuarter("6", false);
- expect(persianDate.isValid()).toBe(false);
- persianDate.calendar("g").parse("2020-5-31");
- persianDate.subQuarter("1", false);
- expect(persianDate.isValid()).toBe(false);
- });
-
- test("subWeek function without parameter", () => {
- persianDate.calendar("j").parse("1399-7-7");
- persianDate.subWeek();
- expect(persianDate.toString()).toBe("1399/06/31");
- persianDate.calendar("g").parse("2020-7-7");
- persianDate.subWeek();
- expect(persianDate.toString()).toBe("2020-06-30");
- });
-
- test("subWeek function with parameter and check date", () => {
- persianDate.calendar("j").parse("1399-6-22");
- persianDate.subWeek("3");
- expect(persianDate.toString()).toBe("1399/06/01");
- persianDate.calendar("g").parse("2020-6-22");
- persianDate.subWeek("3");
- expect(persianDate.toString()).toBe("2020-06-01");
- });
-
- test("subWeek function without check date", () => {
- persianDate.calendar("j").parse("1400-1-13");
- persianDate.subWeek("6", false);
- expect(persianDate.toString()).toBe("1399/12/01");
- persianDate.calendar("g").parse("2021-1-13");
- persianDate.subWeek("6", false);
- expect(persianDate.toString()).toBe("2020-12-02");
- });
-
- test("subHour function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 00:10");
- persianDate.subHour();
- expect(persianDate.toString("datetime")).toBe("1399/06/30 23:10");
- persianDate.calendar("g").parse("2020-6-30 00:10");
- persianDate.subHour();
- expect(persianDate.toString("datetime")).toBe("2020-06-29 23:10");
- });
-
- test("subHour function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-9-4 5:10");
- persianDate.subHour("78");
- expect(persianDate.toString("datetime")).toBe("1399/08/30 23:10");
- persianDate.calendar("g").parse("2020-9-4 5:10");
- persianDate.subHour("78");
- expect(persianDate.toString("datetime")).toBe("2020-08-31 23:10");
- });
-
- test("subHour function without check time", () => {
- persianDate.calendar("j").parse("1399-12-1");
- persianDate.subHour("24", false);
- expect(persianDate.toString("datetime")).toBe("1399/11/30 00:00");
- persianDate.calendar("g").parse("2020-12-1");
- persianDate.subHour("24", false);
- expect(persianDate.toString("datetime")).toBe("2020-11-30 00:00");
- });
-
- test("subMinute function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 00:00");
- persianDate.subMinute();
- expect(persianDate.toString("datetime")).toBe("1399/06/30 23:59");
- persianDate.calendar("g").parse("2020-6-30 00:00");
- persianDate.subMinute();
- expect(persianDate.toString("datetime")).toBe("2020-06-29 23:59");
- });
-
- test("subMinute function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 23:10");
- persianDate.subMinute("1440");
- expect(persianDate.toString("datetime")).toBe("1399/08/29 23:10");
- persianDate.calendar("g").parse("2020-8-31 23:10");
- persianDate.subMinute("1440");
- expect(persianDate.toString("datetime")).toBe("2020-08-30 23:10");
- });
-
- test("subMinute function without check time", () => {
- persianDate.calendar("j").parse("1399-12-30 00:00");
- persianDate.subMinute("1", false);
- expect(persianDate.toString("datetime")).toBe("1399/12/29 23:59");
- persianDate.calendar("g").parse("2020-12-31 00:00");
- persianDate.subMinute("1", false);
- expect(persianDate.toString("datetime")).toBe("2020-12-30 23:59");
- });
-
- test("subSecond function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-31 00:00:00");
- persianDate.subSecond();
- expect(persianDate.toString("datetime:ss")).toBe("1399/06/30 23:59:59");
- persianDate.calendar("g").parse("2020-6-30 00:00:00");
- persianDate.subSecond();
- expect(persianDate.toString("datetime:ss")).toBe("2020-06-29 23:59:59");
- });
-
- test("subSecond function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 1:00");
- persianDate.subSecond("3600");
- expect(persianDate.toString("datetime:ss")).toBe("1399/08/30 00:00:00");
- persianDate.calendar("g").parse("2020-8-31 1:00");
- persianDate.subSecond("3600");
- expect(persianDate.toString("datetime:ss")).toBe("2020-08-31 00:00:00");
- });
-
- test("subSecond function without check time", () => {
- persianDate.calendar("j").parse("1400-1-1 00:00:00");
- persianDate.subSecond("1", false);
- expect(persianDate.toString("datetime:ss")).toBe("1399/12/30 23:59:59");
- persianDate.calendar("g").parse("2021-1-1 00:00:00");
- persianDate.subSecond("1", false);
- expect(persianDate.toString("datetime:ss")).toBe("2020-12-31 23:59:59");
- });
-
- test("subMillisecond function without parameter", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.subMillisecond();
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/06/31 23:59:59.999");
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.subMillisecond();
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-06-30 23:59:59.999");
- });
-
- test("subMillisecond function with parameter and check time", () => {
- persianDate.calendar("j").parse("1399-8-30 00:00");
- persianDate.subMillisecond("3600000");
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/08/29 23:00:00.0");
- persianDate.calendar("g").parse("2020-8-31 00:00");
- persianDate.subMillisecond("3600000");
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-08-30 23:00:00.0");
- });
-
- test("subMillisecond function without check time", () => {
- persianDate.calendar("j").parse("1400-1-1");
- persianDate.subMillisecond("1", false);
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/12/30 23:59:59.999");
- persianDate.calendar("g").parse("2021-1-1");
- persianDate.subMillisecond("1", false);
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-12-31 23:59:59.999");
- });
-
- test("toString function with jalali calendar", () => {
- persianDate.calendar("j").parse("1400-1-1 15:54:56.856");
- expect(persianDate.toString()).toBe("1400/01/01");
- expect(persianDate.toString("date")).toBe("1400/01/01");
- expect(persianDate.toString("datetime")).toBe("1400/01/01 15:54");
- expect(persianDate.toString("time")).toBe("15:54");
- expect(persianDate.toString("YYYY|YY|y")).toBe("2021|21|2021");
- expect(persianDate.toString("jYYYY|jYY|jy")).toBe("1400|00|1400");
- expect(persianDate.toString("Qo|QO|Q")).toBe("1st|1st|1");
- expect(persianDate.toString("jQo|jQO|jQ")).toBe("اول|اولین|1");
- expect(persianDate.toString("MMMM|MMM|MM|Mo|MO|M")).toBe(
- "March|Mar|03|3rd|3rd|3"
- );
- expect(persianDate.toString("jMMMM|jMMM|jMM|jMo|jMO|jM")).toBe(
- "فروردین|فروردین|01|اول|اولین|1"
- );
- expect(persianDate.toString("DDDD|DDDo|DDDO|DDD|DD|Do|DO|D")).toBe(
- "080|80th|80th|80|21|21st|21st|21"
- );
- expect(persianDate.toString("jDDDD|jDDDo|jDDDO|jDDD|jDD|jDo|jDO|jD")).toBe(
- "001|اول|اولین|1|01|اول|اولین|1"
- );
- expect(persianDate.toString("dddd|ddd|dd|do|dO|d|de")).toBe(
- "Sunday|Sun|Su|1st|1st|0|1"
- );
- expect(persianDate.toString("jdddd|jddd|jdd|jdo|jdO|jd|jde")).toBe(
- "یکشنبه|یکشنبه|ی|دوم|دومین|1|2"
- );
- expect(persianDate.toString("ww|WW|wo|Wo|wO|WO|w|W")).toBe(
- "12|12|12th|12th|12th|12th|12|12"
- );
- expect(persianDate.toString("jww|jWW|jwo|jWo|jwO|jWO|jw|jW")).toBe(
- "01|01|اول|اول|اولین|اولین|1|1"
- );
- expect(persianDate.toString("HH|hh|H|h|kk|k")).toBe("15|03|15|3|15|15");
- expect(persianDate.toString("mm|m")).toBe("54|54");
- expect(persianDate.toString("ss|s")).toBe("56|56");
- expect(persianDate.toString("CCCC|CCC|c")).toBe("856|856|856");
- expect(persianDate.toString("t")).toBe("1616329496856");
- expect(persianDate.toString("aa|a|A|jaa|ja|jA")).toBe(
- "P.M.|pm|PM|ب.ظ|ب ظ|بعد از ظهر"
- );
- expect(persianDate.toString("`the value is:` date")).toBe(
- "the value is: 1400/01/01"
- );
- expect(persianDate.toString("jYYYY `is a good year.`")).toBe(
- "1400 is a good year."
- );
- expect(persianDate.toString("`it's` h `O'Clock`")).toBe("it's 3 O'Clock");
-
- expect(persianDate.toString("`what's the date?` ?YYYY ?MM ?DD")).toBe(
- "what's the date? 1400 01 01"
- );
- });
-
- test("toString function with gregorian calendar", () => {
- persianDate.calendar("g").parse("2020-1-1 15:54:56.856");
- expect(persianDate.toString()).toBe("2020-01-01");
- expect(persianDate.toString("date")).toBe("2020-01-01");
- expect(persianDate.toString("datetime")).toBe("2020-01-01 15:54");
- expect(persianDate.toString("time")).toBe("15:54");
- expect(persianDate.toString("YYYY|YY|y")).toBe("2020|20|2020");
- expect(persianDate.toString("jYYYY|jYY|jy")).toBe("1398|98|1398");
- expect(persianDate.toString("Qo|QO|Q")).toBe("1st|1st|1");
- expect(persianDate.toString("jQo|jQO|jQ")).toBe("چهارم|چهارمین|4");
- expect(persianDate.toString("MMMM|MMM|MM|Mo|MO|M")).toBe(
- "January|Jan|01|1st|1st|1"
- );
- expect(persianDate.toString("jMMMM|jMMM|jMM|jMo|jMO|jM")).toBe(
- "دی|دی|10|دهم|دهمین|10"
- );
- expect(persianDate.toString("DDDD|DDDo|DDDO|DDD|DD|Do|DO|D")).toBe(
- "001|1st|1st|1|01|1st|1st|1"
- );
- expect(persianDate.toString("jDDDD|jDDDo|jDDDO|jDDD|jDD|jDo|jDO|jD")).toBe(
- "287|دویست و هشتاد و هفتم|دویست و هشتاد و هفتمین|287|11|یازدهم|یازدهمین|11"
- );
- expect(persianDate.toString("dddd|ddd|dd|do|dO|d|de")).toBe(
- "Wednesday|Wed|We|4th|4th|3|4"
- );
- expect(persianDate.toString("jdddd|jddd|jdd|jdo|jdO|jd|jde")).toBe(
- "چهارشنبه|چهارشنبه|چ|پنجم|پنجمین|4|5"
- );
- expect(persianDate.toString("ww|WW|wo|Wo|wO|WO|w|W")).toBe(
- "01|01|1st|1st|1st|1st|1|1"
- );
- expect(persianDate.toString("jww|jWW|jwo|jWo|jwO|jWO|jw|jW")).toBe(
- "41|41|چهل و یکم|چهل و یکم|چهل و یکمین|چهل و یکمین|41|41"
- );
- expect(persianDate.toString("HH|hh|H|h|kk|k")).toBe("15|03|15|3|15|15");
- expect(persianDate.toString("mm|m")).toBe("54|54");
- expect(persianDate.toString("ss|s")).toBe("56|56");
- expect(persianDate.toString("CCCC|CCC|c")).toBe("856|856|856");
- expect(persianDate.toString("t")).toBe("1577881496856");
- expect(persianDate.toString("aa|a|A|jaa|ja|jA")).toBe(
- "P.M.|pm|PM|ب.ظ|ب ظ|بعد از ظهر"
- );
- expect(persianDate.toString("`the value is:` date")).toBe(
- "the value is: 2020-01-01"
- );
- expect(persianDate.toString("YYYY `is a good year.`")).toBe(
- "2020 is a good year."
- );
- expect(persianDate.toString("`it's` h `O'Clock`")).toBe("it's 3 O'Clock");
-
- expect(persianDate.toString("`what's the date?` ?YYYY ?MM ?DD")).toBe(
- "what's the date? 2020 01 01"
- );
- });
-
- test("year function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.year("1405");
- expect(persianDate.toString()).toBe("1405/07/01");
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.year("2025");
- expect(persianDate.toString()).toBe("2025-07-01");
- });
-
- test("month function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.month("5");
- expect(persianDate.toString()).toBe("1399/05/01");
- persianDate.month("13");
- expect(persianDate.toString()).toBe("1400/01/01");
- persianDate.parse("1399-7-1");
- persianDate.month("0");
- expect(persianDate.toString()).toBe("1398/12/01");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.month("5");
- expect(persianDate.toString()).toBe("2020-05-01");
- persianDate.month("13");
- expect(persianDate.toString()).toBe("2021-01-01");
- persianDate.parse("2020-7-1");
- persianDate.month("0");
- expect(persianDate.toString()).toBe("2019-12-01");
- });
-
- test("date function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.date("5");
- expect(persianDate.toString()).toBe("1399/07/05");
- persianDate.date("0");
- expect(persianDate.toString()).toBe("1399/06/31");
- persianDate.parse("1399-7-1");
- persianDate.date("32");
- expect(persianDate.toString()).toBe("1399/08/02");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.date("5");
- expect(persianDate.toString()).toBe("2020-07-05");
- persianDate.date("0");
- expect(persianDate.toString()).toBe("2020-06-30");
- persianDate.parse("2020-7-1");
- persianDate.date("32");
- expect(persianDate.toString()).toBe("2020-08-01");
- });
-
- test("quarter function", () => {
- persianDate.calendar("j").parse("1399-7-5");
- persianDate.quarter("2");
- expect(persianDate.toString()).toBe("1399/04/05");
- persianDate.quarter("0");
- expect(persianDate.toString()).toBe("1398/10/05");
- persianDate.parse("1399-7-5");
- persianDate.quarter("5");
- expect(persianDate.toString()).toBe("1400/03/05");
-
- persianDate.calendar("g").parse("2020-7-5");
- persianDate.quarter("2");
- expect(persianDate.toString()).toBe("2020-04-05");
- persianDate.quarter("0");
- expect(persianDate.toString()).toBe("2019-10-05");
- persianDate.parse("2020-7-5");
- persianDate.quarter("5");
- expect(persianDate.toString()).toBe("2021-03-05");
- });
-
- test("week function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.week("23");
- expect(persianDate.toString()).toBe("1399/06/04");
- persianDate.week("0");
- expect(persianDate.toString()).toBe("1398/12/27");
- persianDate.parse("1399-7-1");
- persianDate.week("54");
- expect(persianDate.toString()).toBe("1400/01/10");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.week("23");
- expect(persianDate.toString()).toBe("2020-06-03");
- persianDate.week("0");
- expect(persianDate.toString()).toBe("2019-12-25");
- persianDate.parse("2020-7-1");
- persianDate.week("54");
- expect(persianDate.toString()).toBe("2021-01-06");
- });
-
- test("hour function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.hour("23");
- expect(persianDate.toString("time")).toBe("23:00");
- persianDate.hour("0");
- expect(persianDate.toString("datetime")).toBe("1399/07/01 00:00");
- persianDate.hour("24");
- expect(persianDate.toString("datetime")).toBe("1399/07/02 00:00");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.hour("23");
- expect(persianDate.toString("time")).toBe("23:00");
- persianDate.hour("0");
- expect(persianDate.toString("datetime")).toBe("2020-07-01 00:00");
- persianDate.hour("24");
- expect(persianDate.toString("datetime")).toBe("2020-07-02 00:00");
- });
-
- test("minute function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.minute("59");
- expect(persianDate.toString("time")).toBe("00:59");
- persianDate.minute("0");
- expect(persianDate.toString("time")).toBe("00:00");
- persianDate.minute("60");
- expect(persianDate.toString("time")).toBe("01:00");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.minute("59");
- expect(persianDate.toString("time")).toBe("00:59");
- persianDate.minute("0");
- expect(persianDate.toString("time")).toBe("00:00");
- persianDate.minute("60");
- expect(persianDate.toString("time")).toBe("01:00");
- });
-
- test("second function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.second("59");
- expect(persianDate.toString("s")).toBe("59");
- persianDate.second("0");
- expect(persianDate.toString("s")).toBe("0");
- persianDate.second("60");
- expect(persianDate.toString("m:s")).toBe("1:0");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.second("59");
- expect(persianDate.toString("s")).toBe("59");
- persianDate.second("0");
- expect(persianDate.toString("s")).toBe("0");
- persianDate.second("60");
- expect(persianDate.toString("m:s")).toBe("1:0");
- });
-
- test("millisecond function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.millisecond("999");
- expect(persianDate.toString("c")).toBe("999");
- persianDate.millisecond("0");
- expect(persianDate.toString("c")).toBe("0");
- persianDate.millisecond("1000");
- expect(persianDate.toString("s:c")).toBe("1:0");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.millisecond("999");
- expect(persianDate.toString("c")).toBe("999");
- persianDate.millisecond("0");
- expect(persianDate.toString("c")).toBe("0");
- persianDate.millisecond("1000");
- expect(persianDate.toString("s:c")).toBe("1:0");
- });
-
- test("timestamp function without parameter", () => {
- persianDate.calendar("j").parse("1399-6-11");
- expect(persianDate.timestamp()).toBe(
- new Date(2020, 8, 1, 0, 0, 0, 0).getTime()
- );
- persianDate.calendar("g").parse("2020-6-11");
- expect(persianDate.timestamp()).toBe(
- new Date(2020, 5, 11, 0, 0, 0, 0).getTime()
- );
- });
-
- test("timestamp function with parameter", () => {
- persianDate
- .calendar("j")
- .timestamp(new Date(2020, 7, 22, 0, 0, 0, 0).getTime());
- expect(persianDate.toString("datetime")).toBe("1399/06/01 00:00");
- persianDate
- .calendar("g")
- .timestamp(new Date(2020, 6, 22, 0, 0, 0, 0).getTime());
- expect(persianDate.toString("datetime")).toBe("2020-07-22 00:00");
- });
-
- ////////////////////--- Version 1.1.0 ---////////////////////
-
- test("clone function", () => {
- let clone = persianDate.calendar("j").parse("1399/6/1 12:20:30.235").clone();
- expect(clone.toString("datetime:ss.c")).toBe("1399/06/01 12:20:30.235");
- clone.addYear();
- expect(clone.year()).toBe(persianDate.year() + 1);
-
- clone = persianDate.calendar("g").parse("2020-6-1 12:20:30.235").clone();
- expect(clone.toString("datetime:ss.c")).toBe("2020-06-01 12:20:30.235");
- clone.addYear();
- expect(clone.year()).toBe(persianDate.year() + 1);
- });
-
- test("isSame function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.isSame(1399, "6", 1, "12", 20, 30, 235)).toBe(true);
- expect(persianDate.isSame([1399, 7])).toBe(false);
- expect(persianDate.isSame(new PersianDate())).toBe(false);
- expect(persianDate.isSame(new Date(2020, 7, 22, 12, 20, 30, 235))).toBe(true);
- expect(
- persianDate.isSame({
- year: 1399,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(false);
- expect(persianDate.isSame("1399/6/1")).toBe(true);
- expect(persianDate.isSame("1399/13/1")).toBe(false);
- expect(persianDate.isSame()).toBe(false);
- expect(persianDate.isSame(1399, "6", 1, "12", 20, 30, 0)).toBe(false);
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.isSame(2020, "6", 1, "12", 20, 30, 235)).toBe(true);
- expect(persianDate.isSame([2020, 7])).toBe(false);
- expect(persianDate.isSame(new PersianDate())).toBe(false);
- expect(persianDate.isSame(new Date(2020, 5, 1, 12, 20, 30, 235))).toBe(true);
- expect(
- persianDate.isSame({
- year: 2020,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(false);
- expect(persianDate.isSame("2020-6-1")).toBe(true);
- expect(persianDate.isSame("2020-13-1")).toBe(false);
- expect(persianDate.isSame()).toBe(false);
- expect(persianDate.isSame(2020, "6", 1, "12", 20, 30, 0)).toBe(false);
- });
-
- ////////////////////--- Version 1.2.0 ---////////////////////
-
- test("isBefore function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.isBefore(1399, "6", 1, "12", 20, 30, 235)).toBe(false);
- expect(persianDate.isBefore([1399, 7])).toBe(true);
- expect(persianDate.isBefore(new PersianDate())).toBe(true);
- expect(persianDate.isBefore(new Date(2020, 7, 22, 12, 20, 30, 234))).toBe(
- false
- );
- expect(
- persianDate.isBefore({
- year: 1399,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(true);
- expect(persianDate.isBefore("1399/6/2")).toBe(true);
- expect(persianDate.isBefore("1399/13/1")).toBe(false);
- expect(persianDate.isBefore()).toBe(true);
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.isBefore(2020, "6", 1, "12", 20, 30, 235)).toBe(false);
- expect(persianDate.isBefore([2020, 7])).toBe(true);
- expect(persianDate.isBefore(new PersianDate())).toBe(true);
- expect(persianDate.isBefore(new Date(2020, 5, 1, 12, 20, 30, 234))).toBe(
- false
- );
- expect(
- persianDate.isBefore({
- year: 2020,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(true);
- expect(persianDate.isBefore("2020-6-2")).toBe(true);
- expect(persianDate.isBefore("2020-13-1")).toBe(false);
- expect(persianDate.isBefore()).toBe(true);
- });
-
- test("isAfter function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.isAfter(1399, "6", 1, "12", 20, 30, 235)).toBe(false);
- expect(persianDate.isAfter([1399, 5])).toBe(true);
- expect(persianDate.isAfter(new PersianDate())).toBe(false);
- expect(persianDate.isAfter(new Date(2020, 7, 22, 12, 20, 30, 234))).toBe(
- true
- );
- expect(
- persianDate.isAfter({
- year: 1399,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(false);
- expect(persianDate.isAfter("1399/5/1")).toBe(true);
- expect(persianDate.isAfter("1399/13/1")).toBe(false);
- expect(persianDate.isAfter()).toBe(false);
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.isAfter(2020, "6", 1, "12", 20, 30, 235)).toBe(false);
- expect(persianDate.isAfter([2020, 5])).toBe(true);
- expect(persianDate.isAfter(new PersianDate())).toBe(false);
- expect(persianDate.isAfter(new Date(2020, 5, 1, 12, 20, 30, 234))).toBe(true);
- expect(
- persianDate.isAfter({
- year: 2020,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(false);
- expect(persianDate.isAfter("2020-5-1")).toBe(true);
- expect(persianDate.isAfter("2020-13-1")).toBe(false);
- expect(persianDate.isAfter()).toBe(false);
- });
-
- ////////////////////--- Version 1.3.0 ---////////////////////
-
- test("toObject function without parameter", () => {
- let object = persianDate
- .calendar("j")
- .parse("1400/1/1 12:54:21:123")
- .toObject();
- expect(object.year).toBe(persianDate.year());
- expect(object.month).toBe(persianDate.month());
- expect(object.date).toBe(persianDate.date());
- expect(object.hour).toBe(persianDate.hour());
- expect(object.minute).toBe(persianDate.minute());
- expect(object.second).toBe(persianDate.second());
- expect(object.millisecond).toBe(persianDate.millisecond());
-
- object = persianDate.calendar("g").parse("2020-1-1 12:54:21:123").toObject();
- expect(object.year).toBe(persianDate.year());
- expect(object.month).toBe(persianDate.month());
- expect(object.date).toBe(persianDate.date());
- expect(object.hour).toBe(persianDate.hour());
- expect(object.minute).toBe(persianDate.minute());
- expect(object.second).toBe(persianDate.second());
- expect(object.millisecond).toBe(persianDate.millisecond());
- });
-
- test("toObject function with string parameter", () => {
- let object = persianDate
- .calendar("j")
- .parse("1400/1/1 12:54:21:123")
- .toObject("jYY-jMM-D");
- expect(object.year).toBe(persianDate.year("jYY"));
- expect(object.month).toBe(persianDate.month("jMM"));
- expect(object.date).toBe(persianDate.date("D"));
- expect(object.hour).toBe(persianDate.hour());
- expect(object.minute).toBe(persianDate.minute());
- expect(object.second).toBe(persianDate.second());
- expect(object.millisecond).toBe(persianDate.millisecond());
-
- object = persianDate
- .calendar("g")
- .parse("2020-1-1 12:54:21:123")
- .toObject("YY-MM-jD");
- expect(object.year).toBe(persianDate.year("YY"));
- expect(object.month).toBe(persianDate.month("MM"));
- expect(object.date).toBe(persianDate.date("jD"));
- expect(object.hour).toBe(persianDate.hour());
- expect(object.minute).toBe(persianDate.minute());
- expect(object.second).toBe(persianDate.second());
- expect(object.millisecond).toBe(persianDate.millisecond());
- });
-
- test("toObject function with array parameter", () => {
- let object = persianDate
- .calendar("j")
- .parse("1400/1/1 12:54:21:123")
- .toObject(["jYY", "jMM", "DD", "kk", "m", "ss", "C"]);
- expect(object.year).toBe(persianDate.year("jYY"));
- expect(object.month).toBe(persianDate.month("jMM"));
- expect(object.date).toBe(persianDate.date("DD"));
- expect(object.hour).toBe(persianDate.hour("kk"));
- expect(object.minute).toBe(persianDate.minute("m"));
- expect(object.second).toBe(persianDate.second("ss"));
- expect(object.millisecond).toBe(persianDate.millisecond("C"));
-
- object = persianDate
- .calendar("g")
- .parse("2020-1-1 12:54:21:123")
- .toObject(["YY", "MM", "jDD", "kk", "m", "ss", "C"]);
- expect(object.year).toBe(persianDate.year("YY"));
- expect(object.month).toBe(persianDate.month("MM"));
- expect(object.date).toBe(persianDate.date("jDD"));
- expect(object.hour).toBe(persianDate.hour("kk"));
- expect(object.minute).toBe(persianDate.minute("m"));
- expect(object.second).toBe(persianDate.second("ss"));
- expect(object.millisecond).toBe(persianDate.millisecond("C"));
- });
-
- test("toObject function with object parameter", () => {
- let object = persianDate.calendar("j").parse("1400/1/1").toObject({
- year: "jYY",
- M: "jMM",
- date: "DD",
- hour: "kk",
- minutes: "m",
- s: "ss",
- ms: "C",
- });
- expect(object.year).toBe(persianDate.year("jYY"));
- expect(object.month).toBe(persianDate.month("jMM"));
- expect(object.date).toBe(persianDate.date("DD"));
- expect(object.hour).toBe(persianDate.hour("kk"));
- expect(object.minute).toBe(persianDate.minute("m"));
- expect(object.second).toBe(persianDate.second("ss"));
- expect(object.millisecond).toBe(persianDate.millisecond("C"));
-
- object = persianDate.calendar("g").parse("2020-1-1").toObject({
- year: "YY",
- M: "MM",
- date: "jDD",
- hour: "kk",
- minutes: "m",
- s: "ss",
- ms: "C",
- });
- expect(object.year).toBe(persianDate.year("YY"));
- expect(object.month).toBe(persianDate.month("MM"));
- expect(object.date).toBe(persianDate.date("jDD"));
- expect(object.hour).toBe(persianDate.hour("kk"));
- expect(object.minute).toBe(persianDate.minute("m"));
- expect(object.second).toBe(persianDate.second("ss"));
- expect(object.millisecond).toBe(persianDate.millisecond("C"));
- });
-
- test("toObject function with numeric parameter", () => {
- let object = persianDate
- .calendar("j")
- .parse("1400/1/1")
- .toObject("jYY", "jMM", "DD", "kk", "m", "ss", "C");
- expect(object.year).toBe(persianDate.year("jYY"));
- expect(object.month).toBe(persianDate.month("jMM"));
- expect(object.date).toBe(persianDate.date("DD"));
- expect(object.hour).toBe(persianDate.hour("kk"));
- expect(object.minute).toBe(persianDate.minute("m"));
- expect(object.second).toBe(persianDate.second("ss"));
- expect(object.millisecond).toBe(persianDate.millisecond("C"));
-
- object = persianDate
- .calendar("g")
- .parse("2020-1-1")
- .toObject("YY", "MM", "jDD", "kk", "m", "ss", "C");
- expect(object.year).toBe(persianDate.year("YY"));
- expect(object.month).toBe(persianDate.month("MM"));
- expect(object.date).toBe(persianDate.date("jDD"));
- expect(object.hour).toBe(persianDate.hour("kk"));
- expect(object.minute).toBe(persianDate.minute("m"));
- expect(object.second).toBe(persianDate.second("ss"));
- expect(object.millisecond).toBe(persianDate.millisecond("C"));
- });
-
- test("isDate function", () => {
- // static
- expect(PersianDate.isDate(new Date())).toBe(true);
- expect(PersianDate.isDate(new PersianDate())).toBe(false);
- expect(PersianDate.isDate("2020-1-1")).toBe(false);
- // non static
- persianDate.calendar("j");
- expect(persianDate.isDate(new Date())).toBe(true);
- expect(persianDate.isDate(new PersianDate())).toBe(false);
- expect(persianDate.isDate("2020-1-1")).toBe(false);
- persianDate.calendar("g");
- expect(persianDate.isDate(new Date())).toBe(true);
- expect(persianDate.isDate(new PersianDate())).toBe(false);
- expect(persianDate.isDate("2020-1-1")).toBe(false);
- });
-
- test("isPersianDate function", () => {
- // static
- expect(PersianDate.isPersianDate(new Date())).toBe(false);
- expect(PersianDate.isPersianDate(new PersianDate())).toBe(true);
- expect(PersianDate.isPersianDate(new PersianDate().calendar("g"))).toBe(true);
- expect(PersianDate.isPersianDate("2020-1-1")).toBe(false);
- // non static
- persianDate.calendar("j");
- expect(persianDate.isPersianDate(new Date())).toBe(false);
- expect(persianDate.isPersianDate(new PersianDate())).toBe(true);
- expect(persianDate.isPersianDate(new PersianDate().calendar("g"))).toBe(true);
- expect(persianDate.isPersianDate("2020-1-1")).toBe(false);
- persianDate.calendar("g");
- expect(persianDate.isPersianDate(new Date())).toBe(false);
- expect(persianDate.isPersianDate(new PersianDate())).toBe(true);
- expect(persianDate.isPersianDate(new PersianDate().calendar("g"))).toBe(true);
- expect(persianDate.isPersianDate("2020-1-1")).toBe(false);
- });
-
- test("isSameOrBefore function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.isSameOrBefore(1399, "6", 1, "12", 20, 30, 235)).toBe(
- true
- );
- expect(persianDate.isSameOrBefore([1399, 7])).toBe(true);
- expect(persianDate.isSameOrBefore(new PersianDate())).toBe(true);
- expect(
- persianDate.isSameOrBefore(new Date(2020, 7, 22, 12, 20, 30, 235))
- ).toBe(true);
- expect(
- persianDate.isSameOrBefore({
- year: 1399,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(true);
- expect(persianDate.isSameOrBefore("1399/6/2")).toBe(true);
- expect(persianDate.isSameOrBefore("1399/13/1")).toBe(false);
- expect(persianDate.isSameOrBefore()).toBe(true);
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.isSameOrBefore(2020, "6", 1, "12", 20, 30, 235)).toBe(
- true
- );
- expect(persianDate.isSameOrBefore([2020, 7])).toBe(true);
- expect(persianDate.isSameOrBefore(new PersianDate())).toBe(true);
- expect(
- persianDate.isSameOrBefore(new Date(2020, 5, 1, 12, 20, 30, 235))
- ).toBe(true);
- expect(
- persianDate.isSameOrBefore({
- year: 2020,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(true);
- expect(persianDate.isSameOrBefore("2020-6-2")).toBe(true);
- expect(persianDate.isSameOrBefore("2020-13-1")).toBe(false);
- expect(persianDate.isSameOrBefore()).toBe(true);
- });
-
- test("isSameOrAfter function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.isSameOrAfter(1399, "6", 1, "12", 20, 30, 235)).toBe(true);
- expect(persianDate.isSameOrAfter([1399, 5])).toBe(true);
- expect(persianDate.isSameOrAfter(new PersianDate())).toBe(false);
- expect(
- persianDate.isSameOrBefore(new Date(2020, 7, 22, 12, 20, 30, 235))
- ).toBe(true);
- expect(
- persianDate.isSameOrAfter({
- year: 1399,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(false);
- expect(persianDate.isSameOrAfter("1399/5/1")).toBe(true);
- expect(persianDate.isSameOrAfter("1399/13/1")).toBe(false);
- expect(persianDate.isSameOrAfter()).toBe(false);
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.isSameOrAfter(2020, "6", 1, "12", 20, 30, 235)).toBe(true);
- expect(persianDate.isSameOrAfter([2020, 5])).toBe(true);
- expect(persianDate.isSameOrAfter(new PersianDate())).toBe(false);
- expect(
- persianDate.isSameOrBefore(new Date(2020, 5, 1, 12, 20, 30, 235))
- ).toBe(true);
- expect(
- persianDate.isSameOrAfter({
- year: 2020,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- })
- ).toBe(false);
- expect(persianDate.isSameOrAfter("2020-5-1")).toBe(true);
- expect(persianDate.isSameOrAfter("2020-13-1")).toBe(false);
- expect(persianDate.isSameOrAfter()).toBe(false);
- });
-
- test("isBetween function", () => {
- persianDate.calendar("j").parse("1399/6/2 12:20:30.235");
- expect(
- persianDate.isBetween(
- [1399, "5", 1, "12", 20, 30, 235],
- "1399/7/1 12:20:30.235"
- )
- ).toBe(true);
- expect(
- persianDate.isBetween(
- {
- year: 1399,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- new PersianDate()
- )
- ).toBe(true);
- expect(persianDate.isBetween("1399/5", new Date())).toBe(true);
- expect(persianDate.isBetween()).toBe(false);
- expect(persianDate.isBetween("1399/7/1", "1399/13/1")).toBe(false);
- expect(persianDate.isBetween("1399/7/32", "1399/12/1")).toBe(false);
- expect(persianDate.isBetween("1399/7", "1399/5")).toBe(false);
- expect(persianDate.isBetween("1399", "1400")).toBe(false);
- expect(persianDate.isBetween("1399", "1400", "[)")).toBe(true);
- expect(persianDate.isBetween("1399/5", "1399/6", "[)")).toBe(false);
- expect(persianDate.isBetween("1399/5", "1399/6", "(]")).toBe(true);
- expect(persianDate.isBetween("1398/11", "1399/7", "[]")).toBe(true);
- expect(persianDate.isBetween("1399/5/31", "1399/6/3")).toBe(true);
- expect(persianDate.isBetween("1399/6/2", "1399/6/2")).toBe(false);
- expect(persianDate.isBetween("1399/6/2", "1399/6/2", "[]")).toBe(true);
-
- persianDate.calendar("g").parse("2020-6-2 12:20:30.235");
- expect(
- persianDate.isBetween(
- [2020, "5", 1, "12", 20, 30, 235],
- "2020-7-1 12:20:30.235"
- )
- ).toBe(true);
- expect(
- persianDate.isBetween(
- {
- year: 2020,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- new PersianDate()
- )
- ).toBe(true);
- expect(persianDate.isBetween("2020-5", new Date())).toBe(true);
- expect(persianDate.isBetween()).toBe(false);
- expect(persianDate.isBetween("2020-7-1", "2020-13-1")).toBe(false);
- expect(persianDate.isBetween("2020-7-32", "2020-12-1")).toBe(false);
- expect(persianDate.isBetween("2020-7", "2020-5")).toBe(false);
- expect(persianDate.isBetween("2020", "2021")).toBe(false);
- expect(persianDate.isBetween("2020", "2021", "[)")).toBe(true);
- expect(persianDate.isBetween("2020-5", "2020-6", "[)")).toBe(false);
- expect(persianDate.isBetween("2020-5", "2020-6", "(]")).toBe(true);
- expect(persianDate.isBetween("2019-11", "2020-7", "(]")).toBe(true);
- expect(persianDate.isBetween("2020-5-31", "2020-6-3")).toBe(true);
- expect(persianDate.isBetween("2020-6-2", "2020-6-2")).toBe(false);
- expect(persianDate.isBetween("2020-6-2", "2020-6-2", "[]")).toBe(true);
- });
-
- ////////////////////--- Version 1.4.0 ---////////////////////
-
- test("min function", () => {
- let date = new Date();
-
- persianDate.calendar("j");
- expect(
- persianDate.min([1399, "5", 1, "12", 20, 30, 235], "1399/7/1 12:20:30.235")
- ).toEqual([1399, "5", 1, "12", 20, 30, 235]);
- expect(
- persianDate.min(
- {
- year: 1399,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- new PersianDate()
- )
- ).toEqual({
- year: 1399,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- });
- expect(persianDate.min("1399/5/1", date)).toBe("1399/5/1");
- expect(persianDate.min()).toBe(false);
- expect(persianDate.min("1399/7/1", "1399/13/1")).toBe(false);
- expect(persianDate.min("1399/7/1", "1399/12/1")).toBe("1399/7/1");
- expect(persianDate.min("1399/10/21", "1399/10/21")).toBe("1399/10/21");
- expect(persianDate.min("1399/7/32", "1399/12/1")).toBe(false);
- expect(persianDate.min("1399/7", "1399/5")).toBe("1399/5");
- expect(persianDate.min("1399", "1400")).toBe("1399");
-
- persianDate.calendar("g");
- expect(
- persianDate.min([2020, "5", 1, "12", 20, 30, 235], "2020-7-1 12:20:30.235")
- ).toEqual([2020, "5", 1, "12", 20, 30, 235]);
- expect(
- persianDate.min(
- {
- year: 2020,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- new PersianDate()
- )
- ).toEqual({
- year: 2020,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- });
- expect(persianDate.min("2020-5-1", date)).toBe("2020-5-1");
- expect(persianDate.min()).toBe(false);
- expect(persianDate.min("2020-7-1", "2020-13-1")).toBe(false);
- expect(persianDate.min("2020-7-1", "2020-12-1")).toBe("2020-7-1");
- expect(persianDate.min("2020-10-21", "2020-10-21")).toBe("2020-10-21");
- expect(persianDate.min("2020-7-32", "2020-12-1")).toBe(false);
- expect(persianDate.min("2020-7", "2020-5")).toBe("2020-5");
- expect(persianDate.min("2020", "2021")).toBe("2020");
- });
-
- test("max function", () => {
- let date = new Date();
-
- persianDate.calendar("j");
- expect(
- persianDate.max([1399, "5", 1, "12", 20, 30, 235], "1399/7/1 12:20:30.235")
- ).toBe("1399/7/1 12:20:30.235");
- let p = new PersianDate();
- expect(
- persianDate.max(
- {
- year: 1399,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- p
- )
- ).toEqual(p);
- expect(persianDate.max("1399/5/1", date)).toBe(date);
- expect(persianDate.max()).toBe(false);
- expect(persianDate.max("1399/7/1", "1399/13/1")).toBe(false);
- expect(persianDate.max("1399/7/1", "1399/12/1")).toBe("1399/12/1");
- expect(persianDate.min("1399/10/21", "1399/10/21")).toBe("1399/10/21");
- expect(persianDate.max("1399/7/32", "1399/12/1")).toBe(false);
- expect(persianDate.max("1399/7", "1399/5")).toBe("1399/7");
- expect(persianDate.max("1399", "1400")).toBe("1400");
-
- persianDate.calendar("g");
- expect(
- persianDate.max([2020, "5", 1, "12", 20, 30, 235], "2020-7-1 12:20:30.235")
- ).toBe("2020-7-1 12:20:30.235");
- p = new PersianDate();
- expect(
- persianDate.max(
- {
- year: 2020,
- month: 5,
- date: 31,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- p
- )
- ).toEqual(p);
- expect(persianDate.max("2020-5-1", date)).toBe(date);
- expect(persianDate.max()).toBe(false);
- expect(persianDate.max("2020-7-1", "2020-13-1")).toBe(false);
- expect(persianDate.max("2020-7-1", "2020-12-1")).toBe("2020-12-1");
- expect(persianDate.min("2020-10-21", "2020-10-21")).toBe("2020-10-21");
- expect(persianDate.max("2020-7-32", "2020-12-1")).toBe(false);
- expect(persianDate.max("2020-7", "2020-5")).toBe("2020-7");
- expect(persianDate.max("2020", "2021")).toBe("2021");
- });
-
- test("diff function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.diff([1399, "5", 1, "12", 20, 30, 235], "year")).toBe(0);
- expect(persianDate.diff([1399, "5", 1, "12", 20, 30, 235], "month")).toBe(1);
- expect(
- persianDate.diff(new Date(2020, 6, 22, 12, 20, 30, 235), "month")
- ).toBe(1);
- expect(
- persianDate.diff(
- {
- year: 1399,
- month: 5,
- date: 1,
- hour: 12,
- minute: 20,
- second: 30,
- millisecond: 235,
- },
- "date"
- )
- ).toBe(31);
- expect(persianDate.diff("1399/5/1 12:20:30.235", "hour")).toBe(31 * 24);
- expect(persianDate.diff(persianDate.clone().month(5), "minute")).toBe(
- 31 * 24 * 60
- );
- expect(persianDate.diff("1399/5/1 12:20:30.235", "second")).toBe(
- 31 * 24 * 3600
- );
- expect(persianDate.diff("1399/5/1 12:20:30.235", "millisecond")).toBe(
- 31 * 24 * 3600000
- );
- expect(persianDate.diff("1399/5/1 12:20:30.235")).toBe(31 * 24 * 3600000);
- expect(persianDate.diff(null, "date")).toBe(
- persianDate.diff(persianDate.clone().now().toObject(), "date")
- );
- persianDate.parse("1398/1/10");
- expect(persianDate.diff("1398/6/10", "month")).toBe(-5);
- expect(persianDate.diff("1398/2/1", "month", true)).toBe(-2);
- persianDate.parse("1400");
- expect(persianDate.diff("1399/12", "date")).toBe(30);
- expect(persianDate.clone().parse("1400/2").diff("1400/1", "month")).toBe(1);
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.diff([2020, "5", 1, "12", 20, 30, 235], "year")).toBe(0);
- expect(persianDate.diff([2020, "5", 1, "12", 20, 30, 235], "month")).toBe(1);
- expect(persianDate.diff(new Date(2020, 4, 1, 12, 20, 30, 235), "month")).toBe(
- 1
- );
- expect(
- persianDate.diff(
- {
- year: 2020,
- month: 5,
- date: 1,
- hour: 12,
- minute: 20,
- second: 30,
- millisecond: 235,
- },
- "date"
- )
- ).toBe(31);
- expect(persianDate.diff("2020-5-1 12:20:30.235", "hour")).toBe(31 * 24);
- expect(persianDate.diff(persianDate.clone().month(5), "minute")).toBe(
- 31 * 24 * 60
- );
- expect(persianDate.diff("2020-5-1 12:20:30.235", "second")).toBe(
- 31 * 24 * 3600
- );
- expect(persianDate.diff("2020-5-1 12:20:30.235", "millisecond")).toBe(
- 31 * 24 * 3600000
- );
- expect(persianDate.diff("2020-5-1 12:20:30.235")).toBe(31 * 24 * 3600000);
- expect(persianDate.diff(null, "date")).toBe(
- persianDate.diff(persianDate.clone().now(), "date")
- );
- persianDate.parse("2019-1-10");
- expect(persianDate.diff("2019-6-10", "month")).toBe(-5);
- expect(persianDate.diff("2019-2-1", "month", true)).toBe(-2);
- persianDate.parse("2021");
- expect(persianDate.diff("2020-12", "date")).toBe(31);
- expect(persianDate.clone().parse("2021-2").diff("2021-1", "month")).toBe(1);
- });
-
- ////////////////////--- Version 1.5.0 ---////////////////////
-
- test("toArray function without parameter", () => {
- let array = persianDate.calendar("j").parse("1400/1/1").toArray();
- expect(array[0]).toBe(persianDate.year());
- expect(array[1]).toBe(persianDate.month());
- expect(array[2]).toBe(persianDate.date());
- expect(array[3]).toBe(persianDate.hour());
- expect(array[4]).toBe(persianDate.minute());
- expect(array[5]).toBe(persianDate.second());
- expect(array[6]).toBe(persianDate.millisecond());
-
- array = persianDate.calendar("g").parse("2020-1-1").toArray();
- expect(array[0]).toBe(persianDate.year());
- expect(array[1]).toBe(persianDate.month());
- expect(array[2]).toBe(persianDate.date());
- expect(array[3]).toBe(persianDate.hour());
- expect(array[4]).toBe(persianDate.minute());
- expect(array[5]).toBe(persianDate.second());
- expect(array[6]).toBe(persianDate.millisecond());
- });
-
- test("toArray function with string parameter", () => {
- let array = persianDate.calendar("j").parse("1400/1/1").toArray("jYY-jMM-D");
- expect(array[0]).toBe(persianDate.year("jYY"));
- expect(array[1]).toBe(persianDate.month("jMM"));
- expect(array[2]).toBe(persianDate.date("D"));
- expect(array[3]).toBe(persianDate.hour());
- expect(array[4]).toBe(persianDate.minute());
- expect(array[5]).toBe(persianDate.second());
- expect(array[6]).toBe(persianDate.millisecond());
-
- array = persianDate.calendar("g").parse("2020-1-1").toArray("YY-MM-jD");
- expect(array[0]).toBe(persianDate.year("YY"));
- expect(array[1]).toBe(persianDate.month("MM"));
- expect(array[2]).toBe(persianDate.date("jD"));
- expect(array[3]).toBe(persianDate.hour());
- expect(array[4]).toBe(persianDate.minute());
- expect(array[5]).toBe(persianDate.second());
- expect(array[6]).toBe(persianDate.millisecond());
- });
-
- test("toArray function with array parameter", () => {
- let array = persianDate
- .calendar("j")
- .parse("1400/1/1")
- .toArray(["jYY", "jMM", "DD", "kk", "m", "ss", "C"]);
- expect(array[0]).toBe(persianDate.year("jYY"));
- expect(array[1]).toBe(persianDate.month("jMM"));
- expect(array[2]).toBe(persianDate.date("DD"));
- expect(array[3]).toBe(persianDate.hour("kk"));
- expect(array[4]).toBe(persianDate.minute("m"));
- expect(array[5]).toBe(persianDate.second("ss"));
- expect(array[6]).toBe(persianDate.millisecond("C"));
-
- array = persianDate
- .calendar("g")
- .parse("2020-1-1")
- .toArray(["YY", "MM", "jDD", "kk", "m", "ss", "C"]);
- expect(array[0]).toBe(persianDate.year("YY"));
- expect(array[1]).toBe(persianDate.month("MM"));
- expect(array[2]).toBe(persianDate.date("jDD"));
- expect(array[3]).toBe(persianDate.hour("kk"));
- expect(array[4]).toBe(persianDate.minute("m"));
- expect(array[5]).toBe(persianDate.second("ss"));
- expect(array[6]).toBe(persianDate.millisecond("C"));
- });
-
- test("toArray function with object parameter", () => {
- let array = persianDate.calendar("j").parse("1400/1/1").toArray({
- year: "jYY",
- M: "jMM",
- date: "DD",
- hour: "kk",
- minutes: "m",
- s: "ss",
- ms: "C",
- });
- expect(array[0]).toBe(persianDate.year("jYY"));
- expect(array[1]).toBe(persianDate.month("jMM"));
- expect(array[2]).toBe(persianDate.date("DD"));
- expect(array[3]).toBe(persianDate.hour("kk"));
- expect(array[4]).toBe(persianDate.minute("m"));
- expect(array[5]).toBe(persianDate.second("ss"));
- expect(array[6]).toBe(persianDate.millisecond("C"));
-
- array = persianDate.calendar("g").parse("2020-1-1").toArray({
- year: "YY",
- M: "MM",
- date: "jDD",
- hour: "kk",
- minutes: "m",
- s: "ss",
- ms: "C",
- });
- expect(array[0]).toBe(persianDate.year("YY"));
- expect(array[1]).toBe(persianDate.month("MM"));
- expect(array[2]).toBe(persianDate.date("jDD"));
- expect(array[3]).toBe(persianDate.hour("kk"));
- expect(array[4]).toBe(persianDate.minute("m"));
- expect(array[5]).toBe(persianDate.second("ss"));
- expect(array[6]).toBe(persianDate.millisecond("C"));
- });
-
- test("toArray function with numeric parameter", () => {
- let array = persianDate
- .calendar("j")
- .parse("1400/1/1")
- .toArray("jYY", "jMM", "DD", "kk", "m", "ss", "C");
- expect(array[0]).toBe(persianDate.year("jYY"));
- expect(array[1]).toBe(persianDate.month("jMM"));
- expect(array[2]).toBe(persianDate.date("DD"));
- expect(array[3]).toBe(persianDate.hour("kk"));
- expect(array[4]).toBe(persianDate.minute("m"));
- expect(array[5]).toBe(persianDate.second("ss"));
- expect(array[6]).toBe(persianDate.millisecond("C"));
-
- array = persianDate
- .calendar("g")
- .parse("2020-1-1")
- .toArray("YY", "MM", "jDD", "kk", "m", "ss", "C");
- expect(array[0]).toBe(persianDate.year("YY"));
- expect(array[1]).toBe(persianDate.month("MM"));
- expect(array[2]).toBe(persianDate.date("jDD"));
- expect(array[3]).toBe(persianDate.hour("kk"));
- expect(array[4]).toBe(persianDate.minute("m"));
- expect(array[5]).toBe(persianDate.second("ss"));
- expect(array[6]).toBe(persianDate.millisecond("C"));
- });
-
- ////////////////////--- Version 2.0.0 ---////////////////////
-
- test("diffForHumans function", () => {
- persianDate.calendar("j").parse("1400/1/1");
- expect(persianDate.diffForHumans("1350/1/1")).toBe("50 سال آینده");
- expect(persianDate.diffForHumans("1450/1/1")).toBe("50 سال پیش");
- expect(persianDate.diffForHumans("1399/1/1")).toBe("1 سال آینده");
- expect(persianDate.diffForHumans("1401/1/1")).toBe("1 سال پیش");
- expect(persianDate.diffForHumans("1399/5/1")).toBe("8 ماه آینده");
- expect(persianDate.diffForHumans("1400/5/1")).toBe("4 ماه پیش");
- expect(persianDate.diffForHumans("1399/12/15")).toBe("16 روز آینده");
- expect(persianDate.diffForHumans("1400/1/15")).toBe("14 روز پیش");
- expect(persianDate.diffForHumans("1399/12/30 20:00")).toBe("4 ساعت آینده");
- expect(persianDate.diffForHumans("1400/1/1 4:00")).toBe("4 ساعت پیش");
- expect(persianDate.diffForHumans("1399/12/30 23:20")).toBe("40 دقیقه آینده");
- expect(persianDate.diffForHumans("1400/1/1 00:40")).toBe("40 دقیقه پیش");
- expect(persianDate.diffForHumans("1399/12/30 23:59:10")).toBe(
- "1 دقیقه آینده"
- );
- expect(persianDate.diffForHumans("1400/1/1 00:00:50")).toBe("1 دقیقه پیش");
- expect(persianDate.diffForHumans("1399/12/30 23:59:30")).toBe("لحظات آینده");
- expect(persianDate.diffForHumans("1400/1/1 00:00:30")).toBe("لحظات پیش");
- expect(persianDate.diffForHumans("1400/1/1")).toBe("هم اکنون");
- expect(persianDate.diffForHumans("1350/1/1", false)).toBe("50 سال");
- expect(persianDate.diffForHumans("1450/1/1", false)).toBe("50 سال");
-
- persianDate.calendar("g").parse("2020/1/1");
- expect(persianDate.diffForHumans("1970/1/1")).toBe("50 سال آینده");
- expect(persianDate.diffForHumans("2070/1/1")).toBe("50 سال پیش");
- expect(persianDate.diffForHumans("2019/1/1")).toBe("1 سال آینده");
- expect(persianDate.diffForHumans("2021/1/1")).toBe("1 سال پیش");
- expect(persianDate.diffForHumans("2019/5/1")).toBe("8 ماه آینده");
- expect(persianDate.diffForHumans("2020/5/1")).toBe("4 ماه پیش");
- expect(persianDate.diffForHumans("2019/12/15")).toBe("17 روز آینده");
- expect(persianDate.diffForHumans("2020/1/15")).toBe("14 روز پیش");
- expect(persianDate.diffForHumans("2019/12/31 20:00")).toBe("4 ساعت آینده");
- expect(persianDate.diffForHumans("2020/1/1 4:00")).toBe("4 ساعت پیش");
- expect(persianDate.diffForHumans("2019/12/31 23:20")).toBe("40 دقیقه آینده");
- expect(persianDate.diffForHumans("2020/1/1 00:40")).toBe("40 دقیقه پیش");
- expect(persianDate.diffForHumans("2019/12/31 23:59:10")).toBe(
- "1 دقیقه آینده"
- );
- expect(persianDate.diffForHumans("2020/1/1 00:00:50")).toBe("1 دقیقه پیش");
- expect(persianDate.diffForHumans("2019/12/31 23:59:30")).toBe("لحظات آینده");
- expect(persianDate.diffForHumans("2020/1/1 00:00:30")).toBe("لحظات پیش");
- expect(persianDate.diffForHumans("2020/1/1")).toBe("هم اکنون");
- expect(persianDate.diffForHumans("1970/1/1", false)).toBe("50 سال");
- expect(persianDate.diffForHumans("2070/1/1", false)).toBe("50 سال");
- });
-
- test("fromJalali function", () => {
- persianDate.calendar("j").fromJalali("1399", "6", "6", "14", "45");
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/06/06 14:45:00.0");
- persianDate.fromJalali("1400/1");
- expect(persianDate.toString("datetime:ss.c")).toBe("1400/01/01 00:00:00.0");
- persianDate.fromJalali([1400, 1, 5]);
- expect(persianDate.toString("datetime:ss.c")).toBe("1400/01/05 00:00:00.0");
- persianDate.fromJalali({ year: 1399, month: 10, date: 21 });
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/10/21 00:00:00.0");
- let p = new PersianDate();
- persianDate.fromJalali(p.calendar("g"));
- expect(persianDate.toString("datetime:ss.c")).toBe(
- p.calendar("j").toString("datetime:ss.c")
- );
- expect(persianDate.fromJalali().toString("datetime")).toEqual(
- persianDate.clone().now().toString("datetime")
- );
-
- persianDate.calendar("g").fromJalali("1399", "8", "1", "14", "45");
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-10-22 14:45:00.0");
- persianDate.fromJalali("1400/1");
- expect(persianDate.toString("datetime:ss.c")).toBe("2021-03-21 00:00:00.0");
- persianDate.fromJalali([1400, 1, 5]);
- expect(persianDate.toString("datetime:ss.c")).toBe("2021-03-25 00:00:00.0");
- persianDate.fromJalali({ year: 1399, month: 8, date: 1 });
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-10-22 00:00:00.0");
- persianDate.fromJalali(p);
- expect(persianDate.toString("datetime:ss.c")).toBe(
- p.calendar("g").toString("datetime:ss.c")
- );
- expect(persianDate.fromJalali().toString("datetime")).toEqual(
- p.calendar("g").now().toString("datetime")
- );
- });
-
- test("fromGregorian function", () => {
- let date = new Date(2020, 6, 27);
- let p = new PersianDate().calendar("g");
- persianDate
- .calendar("j")
- .fromGregorian("2020", "7", "27", "11", "5", "8", "452");
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/05/06 11:05:08.452");
- persianDate.fromGregorian("2020-8-27");
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/06/06 00:00:00.0");
- persianDate.fromGregorian(date);
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/05/06 00:00:00.0");
- persianDate.fromGregorian(["2020", "7", "27", "11", "5", "8", "452"]);
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/05/06 11:05:08.452");
- persianDate.fromGregorian({
- year: "2020",
- M: "7",
- date: "27",
- hour: "11",
- minutes: "5",
- s: "8",
- ms: "452",
- });
- expect(persianDate.toString("datetime:ss.c")).toBe("1399/05/06 11:05:08.452");
- persianDate.fromGregorian(p);
- expect(persianDate.toString("datetime:ss.c")).toBe(
- p.calendar("j").toString("datetime:ss.c")
- );
- expect(persianDate.fromGregorian()).toEqual(persianDate.clone().now());
-
- persianDate.calendar("g").fromGregorian("2021", "5", 8);
- expect(persianDate.toString("datetime:ss.c")).toBe("2021-05-08 00:00:00.0");
- persianDate.fromGregorian("2020-8-27");
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-08-27 00:00:00.0");
- persianDate.fromGregorian(date);
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-07-27 00:00:00.0");
- persianDate.fromGregorian(["2020", "7", "27", "11", "5", "8", "452"]);
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-07-27 11:05:08.452");
- persianDate.fromGregorian({
- year: "2020",
- M: "7",
- date: "27",
- hour: "11",
- minutes: "5",
- s: "8",
- ms: "452",
- });
- expect(persianDate.toString("datetime:ss.c")).toBe("2020-07-27 11:05:08.452");
- persianDate.fromGregorian(p.calendar("j"));
- expect(persianDate.toString("datetime:ss.c")).toBe(
- p.calendar("g").toString("datetime:ss.c")
- );
- expect(persianDate.fromGregorian()).toEqual(persianDate.clone().now());
- });
-
- test("calendar function", () => {
- persianDate.calendar("j").parse("1400");
- expect(persianDate.calendar("j").toString()).toBe("1400/01/01");
- expect(persianDate.calendar("g").toString()).toBe("2021-03-21");
- expect(persianDate.calendar()).toBe("gregorian");
- persianDate.calendar("g").parse("2020");
- expect(persianDate.calendar("g").toString()).toBe("2020-01-01");
- expect(persianDate.calendar("j").toString()).toBe("1398/10/11");
- expect(persianDate.calendar()).toBe("jalali");
- });
-
- test("getWeeksInYear function", () => {
- expect(persianDate.calendar("j").parse("1399").getWeeksInYear()).toBe(52);
- expect(persianDate.getWeeksInYear(1400)).toBe(52);
- expect(persianDate.calendar("g").parse("2020").getWeeksInYear()).toBe(53);
- expect(persianDate.getWeeksInYear(2021)).toBe(52);
- });
-
- test("toDate function", () => {
- persianDate.calendar("j").parse("1400");
- expect(persianDate.toDate().toString()).toBe(
- new Date(2021, 2, 21).toString()
- );
- persianDate.calendar("g").parse("2020");
- expect(persianDate.toDate().toString()).toBe(
- new Date(2020, 0, 1, 0, 0, 0, 0).toString()
- );
- });
-
- test("startOf function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.startOf("second").toString("datetime:ss.c")).toBe(
- "1399/06/01 12:20:30.0"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.startOf("minute").toString("datetime:ss.c")).toBe(
- "1399/06/01 12:20:00.0"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.startOf("hour").toString("datetime:ss.c")).toBe(
- "1399/06/01 12:00:00.0"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.startOf("date").toString("datetime:ss.c")).toBe(
- "1399/06/01 00:00:00.0"
- );
- persianDate.calendar("j").parse("1399/6/20 12:20:30.235");
- expect(persianDate.startOf("week").toString("datetime:ss.c")).toBe(
- "1399/06/15 00:00:00.0"
- );
- persianDate.calendar("j").parse("1399/6/20 12:20:30.235");
- expect(persianDate.startOf("month").toString("datetime:ss.c")).toBe(
- "1399/06/01 00:00:00.0"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.startOf("quarter").toString("datetime:ss.c")).toBe(
- "1399/04/01 00:00:00.0"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.startOf("year").toString("datetime:ss.c")).toBe(
- "1399/01/01 00:00:00.0"
- );
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("second").toString("datetime:ss.c")).toBe(
- "2020-06-01 12:20:30.0"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("minute").toString("datetime:ss.c")).toBe(
- "2020-06-01 12:20:00.0"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("hour").toString("datetime:ss.c")).toBe(
- "2020-06-01 12:00:00.0"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("date").toString("datetime:ss.c")).toBe(
- "2020-06-01 00:00:00.0"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("week").toString("datetime:ss.c")).toBe(
- "2020-05-31 00:00:00.0"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("month").toString("datetime:ss.c")).toBe(
- "2020-06-01 00:00:00.0"
- );
- persianDate.calendar("g").parse("2020-6-20 12:20:30.235");
- expect(persianDate.startOf("quarter").toString("datetime:ss.c")).toBe(
- "2020-04-01 00:00:00.0"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.startOf("year").toString("datetime:ss.c")).toBe(
- "2020-01-01 00:00:00.0"
- );
- });
-
- test("endOf function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("second").toString("datetime:ss.c")).toBe(
- "1399/06/01 12:20:30.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("minute").toString("datetime:ss.c")).toBe(
- "1399/06/01 12:20:59.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("hour").toString("datetime:ss.c")).toBe(
- "1399/06/01 12:59:59.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("date").toString("datetime:ss.c")).toBe(
- "1399/06/01 23:59:59.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("week").toString("datetime:ss.c")).toBe(
- "1399/06/07 23:59:59.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("month").toString("datetime:ss.c")).toBe(
- "1399/06/31 23:59:59.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("quarter").toString("datetime:ss.c")).toBe(
- "1399/06/31 23:59:59.999"
- );
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(persianDate.endOf("year").toString("datetime:ss.c")).toBe(
- "1399/12/30 23:59:59.999"
- );
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("second").toString("datetime:ss.c")).toBe(
- "2020-06-01 12:20:30.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("minute").toString("datetime:ss.c")).toBe(
- "2020-06-01 12:20:59.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("hour").toString("datetime:ss.c")).toBe(
- "2020-06-01 12:59:59.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("date").toString("datetime:ss.c")).toBe(
- "2020-06-01 23:59:59.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("week").toString("datetime:ss.c")).toBe(
- "2020-06-06 23:59:59.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("month").toString("datetime:ss.c")).toBe(
- "2020-06-30 23:59:59.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("quarter").toString("datetime:ss.c")).toBe(
- "2020-06-30 23:59:59.999"
- );
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(persianDate.endOf("year").toString("datetime:ss.c")).toBe(
- "2020-12-31 23:59:59.999"
- );
- });
-
- test("valueOf function", () => {
- persianDate.calendar("j").parse("1399-6-11");
- expect(persianDate.valueOf()).toBe(
- new Date(2020, 8, 1, 0, 0, 0, 0).getTime()
- );
- persianDate.calendar("g").parse("2020-6-11");
- expect(persianDate.valueOf()).toBe(
- new Date(2020, 5, 11, 0, 0, 0, 0).getTime()
- );
- });
-
- ////////////////////--- Version 2.3.0 ---////////////////////
-
- test("time function", () => {
- persianDate.calendar("j").parse("1399-7-1");
- persianDate.time("12:20:30.235");
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time(12, 20, 30, 235);
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time([12, 20, 30, 235]);
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time({ h: 12, m: 20, s: 30, ms: 235 });
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time(persianDate.clone().parse("1398/10/5 23:05:45.568"));
- expect(persianDate.toString("time:ss.c")).toBe("23:05:45.568");
- persianDate.time(new Date(2020, 5, 6, 23, 5, 45, 568));
- expect(persianDate.toString("time:ss.c")).toBe("23:05:45.568");
- persianDate.time("5");
- expect(persianDate.toString("time:ss.c")).toBe("05:00:00.0");
- persianDate.time("0");
- expect(persianDate.toString("time:ss.c")).toBe("00:00:00.0");
-
- persianDate.calendar("g").parse("2020-7-1");
- persianDate.time("12:20:30.235");
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time(12, 20, 30, 235);
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time([12, 20, 30, 235]);
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time({ h: 12, m: 20, s: 30, ms: 235 });
- expect(persianDate.toString("time:ss.c")).toBe("12:20:30.235");
- persianDate.time(persianDate.clone().parse("2020-5-6 23:05:45.568"));
- expect(persianDate.toString("time:ss.c")).toBe("23:05:45.568");
- persianDate.time(new Date(2020, 5, 6, 23, 5, 45, 568));
- expect(persianDate.toString("time:ss.c")).toBe("23:05:45.568");
- persianDate.time("5");
- expect(persianDate.toString("time:ss.c")).toBe("05:00:00.0");
- persianDate.time("0");
- expect(persianDate.toString("time:ss.c")).toBe("00:00:00.0");
- });
-
- test("test errors", () => {
- const d1 = new PersianDate();
- const d2 = new PersianDate();
-
- expect(d1.isValid()).toBe(true);
- expect(d2.parse(1400, 13).isValid()).toBe(false);
- expect(persianDate.isValid()).toBe(true);
-
- perf.end();
- });
-
- ////////////////////--- Version 2.6.0 ---////////////////////
-
- test("isInArray function", () => {
- persianDate.calendar("j").parse("1399/6/1 12:20:30.235");
- expect(
- persianDate.isInArray([
- [1399, "6", 1, "12", 20, 30, 235],
- new PersianDate(),
- ])
- ).toBe(true);
- expect(
- persianDate.isInArray([[1399, 7], new Date(2020, 7, 22, 12, 20, 30, 235)])
- ).toBe(true);
- expect(
- persianDate.isInArray([
- {
- year: 1399,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- "1399/13/1",
- ])
- ).toBe(false);
- expect(persianDate.isInArray(["1399/6/1"])).toBe(true);
- expect(persianDate.isInArray([])).toBe(false);
- expect(persianDate.isInArray([[1399, "6", 1, "12", 20, 30, 0]])).toBe(false);
-
- persianDate.calendar("g").parse("2020-6-1 12:20:30.235");
- expect(
- persianDate.isInArray([
- [2020, "6", 1, "12", 20, 30, 235],
- new PersianDate(),
- ])
- ).toBe(true);
- expect(
- persianDate.isInArray([[2020, 7], new Date(2020, 5, 1, 12, 20, 30, 235)])
- ).toBe(true);
- expect(
- persianDate.isInArray([
- {
- year: 2020,
- month: 6,
- date: 24,
- hour: 11,
- minute: 2,
- second: 55,
- millisecond: 112,
- },
- "2020-13-1",
- ])
- ).toBe(false);
- expect(persianDate.isInArray(["2020-6-1"])).toBe(true);
- expect(persianDate.isInArray([])).toBe(false);
- expect(persianDate.isInArray([[2020, "6", 1, "12", 20, 30, 0]])).toBe(false);
- });
|