/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

import java.time.* ;
import java.time.format.* ;
import java.time.temporal.* ;

import java.io.BufferedReader;
import java.io.IOException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDate;
import java.time.Month;
import java.util.List;
import java.util.Objects;
import java.util.function.Predicate;


/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{

	    int daysToAddToOddDayNumber = -2_555 ;
	    int daysToAddToEvenDayNumber = 2_101 ; 
	
	    LocalDate localDate = LocalDate.of( 1970 , Month.JANUARY , 1 );
	    boolean isEven = ( ( localDate.getDayOfMonth() & 1) == 0 ) ;
	    LocalDate adjusted = isEven ? localDate.plusDays( daysToAddToEvenDayNumber ) : localDate.plusDays( daysToAddToOddDayNumber ) ;
	
	    System.out.println( "localDate.toString(): " + localDate ) ;
	    System.out.println( "adjusted.toString(): " + adjusted ) ;
	    
	// Get fancy with hashing.
	    
	LocalDate localDate2 = LocalDate.of( 1970 , Month.JANUARY,1 );
    String input = localDate2.toString();

    MessageDigest md = null;
    try
    {
        md = MessageDigest.getInstance( "MD5" );
        md.update( input.getBytes() );
        byte[] digest = md.digest();
        int days  = new BigInteger( 1 , digest ).mod( new BigInteger("10000") ).intValue() ;
        LocalDate adjusted2 = localDate.minusDays( days ) ;

        System.out.println( "localDate = " + localDate );
        System.out.println( "input = " + input );
        System.out.println( "days = " + days );
        System.out.println( "adjusted2 = " + adjusted2 );
    } catch ( NoSuchAlgorithmException e )
    {
        e.printStackTrace();
    }
	}
}