Skip to content

Date Calculator is a simple tool for calculating date differences. It returns the calculated date difference based on the dates provided.. This is a .NET API Client for the Date Calculator API.

License

Notifications You must be signed in to change notification settings

apiverve/datecalculator.NET-API

Repository files navigation

APIVerve.API.DateCalculator API

Date Calculator is a simple tool for calculating date differences. It returns the calculated date difference based on the dates provided.

Build Status Code Climate Prod Ready

This is a .NET Wrapper for the APIVerve.API.DateCalculator API


Installation

Using the .NET CLI:

dotnet add package APIVerve.API.DateCalculator

Using the Package Manager:

nuget install APIVerve.API.DateCalculator

Using the Package Manager Console:

Install-Package APIVerve.API.DateCalculator

From within Visual Studio:

  1. Open the Solution Explorer
  2. Right-click on a project within your solution
  3. Click on Manage NuGet Packages
  4. Click on the Browse tab and search for "APIVerve.API.DateCalculator"
  5. Click on the APIVerve.API.DateCalculator package, select the appropriate version in the right-tab and click Install

Configuration

Before using the datecalculator API client, you have to setup your account and obtain your API Key. You can get it by signing up at https://apiverve.com


Quick Start

Here's a simple example to get you started quickly:

using System;
using APIVerve;

class Program
{
    static async Task Main(string[] args)
    {
        // Initialize the API client
        var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

        var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

        // Make the API call
        try
        {
            var response = await apiClient.ExecuteAsync(queryOptions);

            if (response.Error != null)
            {
                Console.WriteLine($"API Error: {response.Error}");
            }
            else
            {
                Console.WriteLine("Success!");
                // Access response data using the strongly-typed ResponseObj properties
                Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Exception: {ex.Message}");
        }
    }
}

Usage

The APIVerve.API.DateCalculator API documentation is found here: https://docs.apiverve.com/ref/datecalculator. You can find parameters, example responses, and status codes documented here.

Setup

Authentication

APIVerve.API.DateCalculator API uses API Key-based authentication. When you create an instance of the API client, you can pass your API Key as a parameter.

// Create an instance of the API client
var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

Usage Examples

Basic Usage (Async/Await Pattern - Recommended)

The modern async/await pattern provides the best performance and code readability:

using System;
using System.Threading.Tasks;
using APIVerve;

public class Example
{
    public static async Task Main(string[] args)
    {
        var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

        var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

        var response = await apiClient.ExecuteAsync(queryOptions);

        if (response.Error != null)
        {
            Console.WriteLine($"Error: {response.Error}");
        }
        else
        {
            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
        }
    }
}

Synchronous Usage

If you need to use synchronous code, you can use the Execute method:

using System;
using APIVerve;

public class Example
{
    public static void Main(string[] args)
    {
        var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

        var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

        var response = apiClient.Execute(queryOptions);

        if (response.Error != null)
        {
            Console.WriteLine($"Error: {response.Error}");
        }
        else
        {
            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
        }
    }
}

Error Handling

The API client provides comprehensive error handling. Here are some examples:

Handling API Errors

using System;
using System.Threading.Tasks;
using APIVerve;

public class Example
{
    public static async Task Main(string[] args)
    {
        var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

        var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

        try
        {
            var response = await apiClient.ExecuteAsync(queryOptions);

            // Check for API-level errors
            if (response.Error != null)
            {
                Console.WriteLine($"API Error: {response.Error}");
                Console.WriteLine($"Status: {response.Status}");
                return;
            }

            // Success - use the data
            Console.WriteLine("Request successful!");
            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
        }
        catch (ArgumentException ex)
        {
            // Invalid API key or parameters
            Console.WriteLine($"Invalid argument: {ex.Message}");
        }
        catch (System.Net.Http.HttpRequestException ex)
        {
            // Network or HTTP errors
            Console.WriteLine($"Network error: {ex.Message}");
        }
        catch (Exception ex)
        {
            // Other errors
            Console.WriteLine($"Unexpected error: {ex.Message}");
        }
    }
}

Comprehensive Error Handling with Retry Logic

using System;
using System.Threading.Tasks;
using APIVerve;

public class Example
{
    public static async Task Main(string[] args)
    {
        var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

        // Configure retry behavior (max 3 retries)
        apiClient.SetMaxRetries(3);        // Retry up to 3 times (default: 0, max: 3)
        apiClient.SetRetryDelay(2000);     // Wait 2 seconds between retries

        var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

        try
        {
            var response = await apiClient.ExecuteAsync(queryOptions);

            if (response.Error != null)
            {
                Console.WriteLine($"API Error: {response.Error}");
            }
            else
            {
                Console.WriteLine("Success!");
                Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Failed after retries: {ex.Message}");
        }
    }
}

Advanced Features

Custom Headers

Add custom headers to your requests:

var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

// Add custom headers
apiClient.AddCustomHeader("X-Custom-Header", "custom-value");
apiClient.AddCustomHeader("X-Request-ID", Guid.NewGuid().ToString());

var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

var response = await apiClient.ExecuteAsync(queryOptions);

// Remove a header
apiClient.RemoveCustomHeader("X-Custom-Header");

// Clear all custom headers
apiClient.ClearCustomHeaders();

Request Logging

Enable logging for debugging:

var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]", isDebug: true);

// Or use a custom logger
apiClient.SetLogger(message =>
{
    Console.WriteLine($"[LOG] {DateTime.Now:yyyy-MM-dd HH:mm:ss} - {message}");
});

var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

var response = await apiClient.ExecuteAsync(queryOptions);

Retry Configuration

Customize retry behavior for failed requests:

var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]");

// Set retry options
apiClient.SetMaxRetries(3);           // Retry up to 3 times (default: 0, max: 3)
apiClient.SetRetryDelay(1500);        // Wait 1.5 seconds between retries (default: 1000ms)

var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};

var response = await apiClient.ExecuteAsync(queryOptions);

Dispose Pattern

The API client implements IDisposable for proper resource cleanup:

using (var apiClient = new DateCalculatorAPIClient("[YOUR_API_KEY]"))
{
    var queryOptions = new DateCalculatorQueryOptions {
  start = "2022-01-01",
  end = "2024-08-31"
};
    var response = await apiClient.ExecuteAsync(queryOptions);
    Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
}
// HttpClient is automatically disposed here

Example Response

{
  "status": "ok",
  "error": null,
  "data": {
    "minutes": 524160,
    "hours": 8736,
    "days": 364,
    "weeks": 52,
    "months": 11,
    "years": 0,
    "start": {
      "date": "2022-01-01",
      "day": "Saturday",
      "month": "January",
      "year": "2022",
      "words": "Saturday, January 1st 2022"
    },
    "end": {
      "date": "2022-12-31",
      "day": "Saturday",
      "month": "December",
      "year": "2022",
      "words": "Saturday, December 31st 2022"
    }
  }
}

Customer Support

Need any assistance? Get in touch with Customer Support.


Updates

Stay up to date by following @apiverveHQ on Twitter.


Legal

All usage of the APIVerve website, API, and services is subject to the APIVerve Terms of Service and all legal documents and agreements.


License

Licensed under the The MIT License (MIT)

Copyright (©) 2025 APIVerve, and EvlarSoft LLC

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Date Calculator is a simple tool for calculating date differences. It returns the calculated date difference based on the dates provided.. This is a .NET API Client for the Date Calculator API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages