Coder Social home page Coder Social logo

nager / nager.date Goto Github PK

View Code? Open in Web Editor NEW
1.1K 24.0 175.0 4.48 MB

Worldwide holidays (REST API), NuGet or docker container :earth_americas:

Home Page: https://date.nager.at

License: MIT License

C# 100.00%
publicholidays public-holidays holiday calculate-holidays holiday-api holidays bank-holidays calendar calendar-api holiday-calculation

nager.date's Introduction

Build, Test & Publish

📆 Nager.Date - Official Website

Discover the convenience of easily accessing holidays from over 100 countries with Nager.Date. Our popular project utilizes the power of .NET and offers a user-friendly public REST API for seamless integration into your application.

You can find an overview of the supported countries here.

Need offline access to our functionality? No problem! We also provide solutions that allow you to use our services on your own infrastructure without an internet connection. Easily integrate our service into your system with the Docker container or the NuGet package. Both options require a license key. As a sponsor of nager, you get a license key.

Caution

The WebApi V2 will be shut down in December 2024
Please only use the latest WebApi V3

How can I use it?

Easily create a client in your preferred programming language by utilizing our Swagger definition. Find all the necessary information in our API section. Get more details about client generation in the documentation.

Examples

.NET/C# (click to expand)

There are two ways to use our service

NuGet - Nager.Holiday

PM> install-package Nager.Holiday

Copy Code

using System;
using System.Net.Http;
using System.Text.Json;

var jsonSerializerOptions = new JsonSerializerOptions { PropertyNameCaseInsensitive = true };

using var httpClient = new HttpClient();
using var response = await httpClient.GetAsync("https://date.nager.at/api/v3/publicholidays/2022/US");
if (response.IsSuccessStatusCode)
{
    using var jsonStream = await response.Content.ReadAsStreamAsync();
    var publicHolidays = JsonSerializer.Deserialize<PublicHoliday[]>(jsonStream, jsonSerializerOptions);
}

class PublicHoliday
{
    public DateTime Date { get; set; }
    public string LocalName { get; set; }
    public string Name { get; set; }
    public string CountryCode { get; set; }
    public bool Fixed { get; set; }
    public bool Global { get; set; }
    public string[] Counties { get; set; }
    public int? LaunchYear { get; set; }
    public string[] Types { get; set; }
}
PHP (click to expand)

This example use the guzzle project

<?php
require_once 'vendor/autoload.php';
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://date.nager.at/api/v3/publicholidays/2022/US');
if ($response->getStatusCode() == 200) {
    $json = $response->getBody();
    print_r(json_decode($json));
}
?>
Java (click to expand)

This example use the springframework. Code tested with onecompiler.com

Main.java

import java.util.*;
import org.springframework.web.client.RestTemplate;
import com.google.gson.*;

public class Main {
  public static void main(String[] args) {
    System.out.println("get holidays");
    String json = new RestTemplate().getForObject("https://date.nager.at/api/v3/publicholidays/2022/CH", String.class);
    
    Gson gson = new Gson();
    PublicHoliday[] userArray = gson.fromJson(json, PublicHoliday[].class);  

    for(PublicHoliday publicHoliday : userArray) {
      System.out.print(publicHoliday.date);
      System.out.print(" ");
      System.out.print(publicHoliday.name);
      System.out.print(" ");
      System.out.print(String.join(",", publicHoliday.counties ?? new String[0]));
      System.out.print(" ");
      System.out.println(publicHoliday.localName);
    }
  }
}

PublicHoliday.java

public class PublicHoliday {
  public String date;
  public String localName;
  public String name;
  public String countryCode ;
  public Boolean fixed;
  public Boolean global;
  public String[] counties;
  public String[] types;
}

build.gradle

apply plugin:'application'
mainClassName = 'Main'

run { standardInput = System.in }
sourceSets { main { java { srcDir './' } } }

repositories {
  jcenter()
}

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-web:2.6.7';
  implementation 'com.google.code.gson:gson:2.10.1';
}
Python (click to expand)

main.py

import json
import requests

response = requests.get('https://date.nager.at/api/v3/publicholidays/2022/US')
public_holidays = json.loads(response.content)

for public_holiday in public_holidays:
  print(public_holiday['date'])

Offline Solution

Don't let internet connectivity issues disrupt your workflow. Our offline solutions enable you to use our services on your own infrastructure without an internet connection. With a sponsorship you get the license key to use the variants locally without a dependency to our REST API.

NuGet

The NuGet package is available via NuGet

PM> install-package Nager.Date
Code Examples (click to expand)

Examples for .NET (NuGet package)

Set the license key

HolidaySystem.LicenseKey = "LicenseKey1234";

Get all holidays of a country and year

var holidays = HolidaySystem.GetHolidays(2024, "DE");
foreach (var holiday in holidays)
{
    //holiday...
    //holiday.Date -> The date
    //holiday.LocalName -> The local name
    //holiday.EnglishName -> The english name
    //holiday.NationalHoliday -> Is this public holiday in every county (federal state)
    //holiday.SubdivisionCodes -> Is the public holiday only valid for a special county ISO-3166-2 - Federal states
    //holiday.HolidayTypes -> Public, Bank, School, Authorities, Optional, Observance
}

Get all holidays for a date range

var startDate = new DateTime(2016, 5, 1);
var endDate = new DateTime(2024, 5, 31);
var holidays = HolidaySystem.GetHolidays(startDate, endDate, CountryCode.DE);
foreach (var holiday in holidays)
{
	//holiday...
}

Check if a date is a public holiday

var date = new DateTime(2024, 1, 1);
if (HolidaySystem.IsPublicHoliday(date, CountryCode.DE))
{
    Console.WriteLine("Is a public holiday");
}

Checks if the given date falls on a weekend day

var date = new DateTime(2024, 1, 1);
if (WeekendSystem.IsWeekend(date, CountryCode.DE))
{
    Console.WriteLine("The date is in the weekend");
}

Docker

The Docker container is available via Docker Hub
To run a local instance of the Docker image run the following command
docker run -p 80:8080 nager/nager-date

Holiday types

What variants of holidays are supported by Nager.Date

Type Description
Public Public holiday
Bank Bank holiday, banks and offices are closed
School School holiday, schools are closed
Authorities Authorities are closed
Optional Majority of people take a day off
Observance Optional festivity, no paid day off

Data precision

There is no generally valid designation for the next administrative level of countries. "Nager.Date" supports the initial subdivision of a country, but we will not support a detailed level because the effort required is too high.

To keep it generally valid, we will treat this subdivision as SubdivisionCodes, this will replace the current designation Counties.

  • United States of America use States
  • Germany use States
  • Austria use States
  • Switzerland use Cantons
  • Brazil use States
  • Australia use States or Territories
  • Russia use Federal districts
  • Canada use Province or Territories
Precision Supported
Public Holidays for specific Country Yes
Holidays for Subdivisions based on ISO 3166-2 (first level) Yes
Holidays for Cities No
Holidays for Regions No

Areas of Application

There are several business fields in which it is important to know the holidays in different countries.

  • E-commerce: If an online retailer sells its products in different countries, it should know the holidays in these countries to adjust delivery times and customer service accordingly.
  • Travel industry: A tour operator should know the holidays of the countries to which it offers trips, to alert its customers to special events or closed attractions.
  • Staff scheduling: Companies with branches in several countries must know the holidays in each country to be able to plan their staff needs accordingly.
  • Financial industry: Banks and financial institutions should know the holidays in the countries in which they conduct business to ensure that transfers and transactions are performed on time and to estimate the impact of holidays on the foreign exchange market.
  • Logistics and supply chains: Companies managing logistics or supply chains across several countries, must know the holidays in these countries to adjust planning and supply chain decisions.
  • Telephone systems: To automatically turn on the answering machine on holidays.
  • Time recording: To automatically fill the missing hours with the normal working hours.

Articles about this project

nager.date's People

Contributors

alex-jitbit avatar ander89br avatar askelia avatar atvaark avatar bacca87 avatar belmomusta avatar davidmoore avatar deaflight avatar dennisseders avatar dependabot[bot] avatar hoetz avatar jcron avatar jemunk avatar kreiden avatar matthijs110 avatar metritutus avatar michael-blazevic avatar mkumar341 avatar mrapptastic avatar mrcsabatoth avatar philmacdonald2 avatar prasadtelkikar avatar raculus avatar rextremendae avatar rubenmonteiro avatar samtrion avatar taynguyen avatar tinohager avatar troyhickling avatar yipingruan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nager.date's Issues

France's special public holidays

Hi,

first a HUGE thank you for your awesome work.

for France there seems to be a mistake : the 2 special public holiday days (Good friday and St. Stephen's day) are in the region Alsace (FR-A I guess) and in the département of the Moselle, which is not FR-54 but FR-57

The wikipedia page states "Alsace-Lorraine" but this is not true, this is "Alsace-Moselle".

Add country India

Need to implement provider for Indian holidays
India is know for Unity in diversity. you can see diversity in holidays as well. Wikipedia suggests more than 20 days as holidays based on religions, states etc. Wikipedia: Public holidays in India.

Following are the national holidays which we need to add in IndianProvider.cs. Reference: Indian post office holiday list.

I categorized list into two sections.

  1. Holidays with fixed date.
  2. Holidays which varies in date.

Holidays with fixed date. All dates are in dd/MM/yyyy format

  • Republic day of India. -> 26/01/2018
  • Independence day of India -> 15/08/2018
  • Mahatma Gandhi birthday -> 02/10/2018
  • Christmas -> 25/12/2018

Holidays which varies in date. All dates are in dd/MM/yyyy format

All holidays which are categorized into second section may vary depends upon user.
Holidays in second categories needs some sort of algorithm to get exact date.

Huge performance issues

Calling IsPublicHoliday in a loop result in terrible performance degradation since all the providers and dictionaries are re-created every time, FROM SCRATCH.

You have to cache them in static vars

Newest Nager.Date v1.5.0 Nuget package pulls in a ton of dependencies

I'm not sure why is that, but when I updated to this newest 1.5 package depends on
.NETStandard, Version1.1
NETStandard.Library (>= 1.6.1)

When installing, <package id="NETStandard.Library" version="1.6.1" targetFramework="net461" />
is added to my project, but as dependencies all of these packages are also pulled in, almost doubling my existing number of packages in my APS.NET MVC project:

<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="net461" />
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.AppContext" version="4.3.0" targetFramework="net461" />
<package id="System.Collections" version="4.3.0" targetFramework="net461" />
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
<package id="System.Console" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.DiagnosticSource" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization" version="4.3.0" targetFramework="net461" />
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net461" />
<package id="System.IO" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Linq" version="4.3.0" targetFramework="net461" />
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
<package id="System.Net.Http" version="4.3.1" targetFramework="net461" />
<package id="System.Net.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net461" />
<package id="System.ObjectModel" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net461" />
<package id="System.Threading" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
<package id="System.Threading.Timer" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net461" />
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />

This is crazy, I don't know why it's happening, but I could deal with it.
Actually one of these packages had an earlier version in my projects:
<package id="System.Net.Http" version="4.0.0" targetFramework="net461" />

Maybe the fact that that is needed to be 4.3.0 causes all of the other packages to be pulled in. "NETStandard.Library" version="1.6.1" requires that 4.3.0 System.Net.Http? I don't know what to do. Because after all of these packages installed, my project is throwing a mysterious exceptions:

Exception thrown: 'System.MissingMethodException' in ThruThink.dll
Additional information: Method not found: 'Void System.Web.Http.HttpResponseException..ctor(System.Net.Http.HttpResponseMessage)'.

I'm not blaming this on Nager.Date, but I wonder if there's a way to adjust the dependency so it won't pull in packages.

Getting a System.ArgumentNullException calling IsOfficialPublicHolidayByCounty

Hi Tino,
First of all, just wanted to say this is a great library 🥇
When I am checking a date that is a holiday for county code "GB-ENG" then I get an exception on items where they do not have any Counties (null).
{"Value cannot be null.\r\nParameter name: source"}

public static bool IsOfficialPublicHolidayByCounty(DateTime date, CountryCode countryCode, string countyCode)
{
    var items = GetPublicHoliday(countryCode, date.Year);
    return items.Where(o => o.Date.Date == date.Date && o.Counties.Contains(countyCode) && o.CountyOfficialHoliday).Any();
}

However, what I really want is to find if a date is a holiday in the UK but exclude any holidays that are specifically for Northern Ireland or Scotland, so I created the following method :

return IsOfficialPublicHolidayExcludeCounties(date, CountryCode.GB, new string[] { "GB-NIR", "GB-SCT" });

public static bool IsOfficialPublicHolidayExcludeCounties(DateTime date, CountryCode countryCode, string[] countyCodes)
{
    var items = DateSystem.GetPublicHoliday(countryCode, date.Year);
    return items.Where(o => o.Date.Date == date.Date && (o.Counties == null || o.Counties.Except(countyCodes).Any()) && o.CountyOfficialHoliday).Any();
}

Thought it might help

How can I add holidays from my country?

Hi everyone,

First of all, thank you for this contribution. It's really useful. However, I'm from Brazil and there is no support for Brazilian holidays. I would like to help to expand the project adding a Brazil Provider. Is it possible? If yes, how I could do that?

Again, thank you :D

Incorrect local name for italian holiday

The italian local name for 15th of August is mistyped, the correct name is "Ferragosto o Assunzione" instead of "Ferragosto and Assunta".

Trust me, i'm italian...

Complete country China - Qingming (Tomb-Sweeping Day)

Missing Easter day

Why the easter day is missing for all countries that celebrate this day?
Ok, I know that this day is always on sunday, but why not add anyway this holiday?

For example in my application there is a calendar that display all the holidays, but easter is missing and i have to calculate this day by myself.

Thoughts on library

I was looking for a library (holidays), but none meet my requirements. Finally, I wrote something of my own, but I will leave here a few suggestions/comments. When it comes to functionality, it's a great library, but it has some drawbacks with the model or assumptions.

  1. Holiday and holiday occurrence are both in the same model "PublicHoliday". This is broken by definition.

Example:
Christian feast day "Epiphany" is also polish public holiday:

  • from X (I didn't find, probably 1952) to 1960 it was a day off
  • from 1961 to 2010 it wasn't a day off
  • from 2011 is a day off again (btw, Nager.Date returns for each year as public holiday = bug (PolandProvider))

It is not possible to describe it by "LaunchYear" (launched twice ;)), "CountyOfficialHoliday", "CountyAdministrationHoliday" properties.

  1. PublicHoliday is mutable class. For me it should be immutable, there is not point to create instance outside library or to mutate it later.

  2. Performance is not so great. For example PolandProvider creates list and sort it, which is not needed at all.

  3. Missing IEquatable implementation + equality operators.

Quick suggestions:

  1. Create immutable class or struct "Holiday", which will describe holiday in general (don't have date property), e.g. New Year's Day. Provide GetOccurrences() for concrete holiday (instance of Holiday), that returns only New Year's Day occurrences. Static method in Holiday should returns all possible occurrences for all possible holidays.

  2. Create struct "HolidayOccurrence", which will describe holiday occurrence (has date). Should contains information about if it is a day off. Immutability and IEquatable are must have.

  3. GetOccurrences() should not create new list, just multiple yield return statements.

  4. New API should make possible to work in perspective of:

  • concrete holiday in concrete country: e.g. all occurrence of Easter Sunday
  • all occurrences of all holidays in concrete country
  • concrete holiday around the world (or Europe etc.)

Canada May 21, 2018

Using the following
\packages\Nager.Date.1.12.0\lib\net45\Nager.Date.dll

Demonstration of the problem
? DateSystem.IsPublicHoliday(new DateTime(2018, 05, 21), CountryCode.CA)
false

Confirming it's working
? DateSystem.IsPublicHoliday(new DateTime(2018, 04, 23), CountryCode.CA)
true
? DateSystem.IsPublicHoliday(new DateTime(2018, 04, 24), CountryCode.CA)
false

http://date.nager.at/api/v1/get/CA/2018
Shows holiday as there

CA-AB CA-BC CA-MB CA-NB CA-NT CA-NS CA-NU CA-ON CA-PE CA-SK CA-YT CA true true 2018-05-21 false false Victoria Day Victoria Day

Error 403 - This web app is stopped.

Hi,

I was previously using the bank holiday API for my webapp, however as of today I noticed a 403 error. Is this forbidden to all users now?

Cheers

Pentecost Romania-2018

Country:Romania

Description

First day of Pentecost in Romania, this year, is in 27 May.

Us Public holidays

Hello,
This code snippet:
string output = string.Empty;
var holidays = DateSystem.GetPublicHoliday(CountryCode.US, 2020).ToList();
foreach (var h in holidays)
{
output += $"{h.Name} - {h.Date.ToString("d")}\n";
}
output += "\n";

Returns 7/3/2020 as the .Date for Independence Day, not 7/4/2020.

Thank you.

Date Range

Currently if you were in December and also wanted the next months January holidays you would need to get the full current year + next years holidays and filter out all the rest.

It would be useful in the above situation and others to be able to get holidays between two sets of dates. I imagine Month/Year range selection would be most useful but I guess some may want full date range.

Good Friday in Hungary

Important specifications

Affected country: HU
1 Error an 1 added holiday in HungaryProvider.cs

Description

2 changes in HungaryProvider.cs:

/* Change EE to HU */
var countryCode = CountryCode.HU;

/* Added +1 holiday, since 2017 Good Friday is a public holiday in Hungary */
items.Add(new PublicHoliday(easterSunday.AddDays(-2), "Nagypéntek", "Good Friday", countryCode));

Proof: https://en.wikipedia.org/wiki/Public_holidays_in_Hungary

Error Colombia Holidays

Important specifications

Description

I'm trying to get the holiday's sending a country "CO" (Colombia) for a specific date range and the nager library gives me a wrong response. Some days aren't holidays in the country "CO".

Example.
Country: CO
DateStart: 4/1/2018 12:00:00 AM
DataEnd: 6/20/2018 12:00:00 AM

Response:
5/1/2018 - "Labour Day": Is a correct holiday
5/10/2018 - "Ascension Day": ISN'T A HOLIDAY
5/31/2018 - "Corpus Christi": ISN'T A HOLIDAY
6/8/2018 - "Sacred Heart": ISN'T A HOLIDAY

Holiday api useful for real work

for many industries, we care about if a day is a working day (i.e. people could be in the office to pay money or send letter etc.). For such purpose, it is better to have a API like IsBusinessDay(day) to return False on, for example, 2 Jan 2017

"Mariä Himmelfahrt" incorrectly not a holiday in catholic districts of Bavaria/Germany

Important specifications

Description

I am not sure whether such district/region specific holidays within a county are currently support in Nager.Date at all otherwise I would have submitted a fix / -PR already :-/

One holiday too many - SI

As also stated in wikipedia article, the Primož Trubar day is not a work-free day in Slovenia (SI), and therefore should not be included in list of holidays.
Line items.Add(new PublicHoliday(year, 6, 8, "dan Primoža Trubarja", "Primož Trubar Day", countryCode)); should be removed.
Cheers.

Belgium local names

There are three languages in Belgium: Dutch, French and German.

All LocalNames are currently in Dutch except for:

  • Pâques (=French), "Pasen" in Dutch.
  • Weihnachten (=German), "Kerstdag" in Dutch.

Perhaps an additional method can be added to get the local name in one of the other national languages?

Something like:

LocalName ==> Pasen
DefaultLocalLanguage ==> Dutch
GetLocalName("FR") ==> Pâques

What do you think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.