Change of day and night

extends Node2D
@onready var light = $DirectionalLight2D
enum {
	MORNING,
	DAY,
	EVNENG,
	NIGHT,
	}

var state = MORNING

func _ready ():
	light.enabled = true

func _process(delta: float) -> void:
	match state :
		MORNING:
			morning_state()
		EVNENG:
			evning_state()

func morning_state():
	var tween = get_tree().create_tween()
	tween.tween_property(light,"energy", 0.2, 20)

func evning_state():
	var tween = get_tree().create_tween()
	tween.tween_property(light,"energy", 0.95, 20)

func _on_day_night_timeout() -> void:
	if state < 3:
		state +=1
	else :
		state = MORNING

script for changing day and night does not work

Maybe because you are creating multi tweens in every frames of process, can you try this?

extends Node2D
@onready var light = $DirectionalLight2D
enum {
	MORNING,
	DAY,
	EVNENG,
	NIGHT,
	}

var state = MORNING
var state_changing = false

func _ready ():
	light.enabled = true

func _process(delta: float) -> void:
    #if state_changing: return

    if !state_changing:
		match state:
			MORNING:
				morning_state()
			EVNENG:
				evning_state()

func morning_state():
	var tween = get_tree().create_tween()
	tween.tween_property(light,"energy", 0.2, 20)
    state_changing = true

func evning_state():
	var tween = get_tree().create_tween()
	tween.tween_property(light,"energy", 0.95, 20)
    state_changing = true

func _on_day_night_timeout() -> void:
	if state < 3:
		state += 1
	else :
		state = MORNING
    state_changing = false

thanks but in your script there is an error
“Used space character for indentation instead of tab as used before in the file.” on the lines:

func _process(delta: float) -> void:
	tween.tween_property(light, "energy",0.2, 20)
	tween.tween_property(light,"energy", 0.95, 20)
		state = MORNING

I couldn’t fix this problem

Just paste the codes in your script and hit CTRL+S