dlaksmi
dlaksmi

Reputation: 369

how calculated time with properties from class model object in vb.net

I'm Trying to calculated properties from class model object in vb.net

so I want to get rid of the "0" string to be empty

for calculation DUROFWORK It has not been reduced by DEFREST

DatagridView is only a view so my goal is to use the Report Viewer.

If the status Not Present then empty for the object IN,OUT,DUROFWORK,LATEIN

For Latein If the results 00:00:00 then I want the result to be empty

Please Guide me

Thanks

Imports System.ComponentModel

Public Class Form1
    Private DTOABSEN As List(Of DTOABSEN)
    Private bindingSource As BindingSource = Nothing
    Public Sub New()
        InitializeComponent()
    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.LoadData()
    End Sub
    Private Sub LoadData()
        DTOABSEN = New List(Of DTOABSEN) From {
                New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("06-05-2024"),
                    .Days = Convert.ToDateTime("06-05-2024").ToString("dddd"),
                    .STATUS = "PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "08:00",
                    .OUT = "17:00"
                },
                New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("07-05-2024"),
                    .Days = Convert.ToDateTime("07-05-2024").ToString("dddd"),
                    .STATUS = "PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "08:00",
                    .OUT = "17:00"
                },
                  New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("08-05-2024"),
                    .Days = Convert.ToDateTime("08-05-2024").ToString("dddd"),
                    .STATUS = "PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "08:00",
                    .OUT = "17:00"
                },
          New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("09-05-2024"),
                    .Days = Convert.ToDateTime("09-05-2024").ToString("dddd"),
                    .STATUS = "PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "08:00",
                    .OUT = "17:00"
                },
         New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("10-05-2024"),
                    .Days = Convert.ToDateTime("10-05-2024").ToString("dddd"),
                    .STATUS = "PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "08:20",
                    .OUT = "17:00"
                },
                 New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("11-05-2024"),
                    .Days = Convert.ToDateTime("11-05-2024").ToString("dddd"),
                    .STATUS = "NOT PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "0",
                    .OUT = "0"
                },
                 New DTOABSEN() With {
                    .DATE = Convert.ToDateTime("12-05-2024"),
                    .Days = Convert.ToDateTime("12-05-2024").ToString("dddd"),
                    .STATUS = "NOT PRESENT",
                    .DEFIN = "08:00",
                    .DEFREST = "01:00",
                    .IN = "",
                    .OUT = ""
                }
        }

        bindingSource = New BindingSource With {.DataSource = New BindingList(Of DTOABSEN)(CType(DTOABSEN, IList(Of DTOABSEN)))}
        DataGridView1.DataSource = bindingSource
        DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells)
    End Sub
End Class
Public Class ABSEN
    Public Property [DATE] As DateTime
    Public Property Days As String
    Public Property STATUS As String
    Public Property DEFIN As String
    Public Property DEFREST As String
    Public Property [IN] As String
    Public Property OUT As String
    Public Property DUROFWORK As String

    Public Property LATEIN As String


End Class
Public Class DTOABSEN
    Public Property [DATE] As DateTime
    Public Property Days As String
    Public Property STATUS As String
    Public Property DEFIN As String
    Public Property DEFREST As String
    Public Property [IN] As String
    Public Property OUT As String
    Public ReadOnly Property DUROFWORK As TimeSpan
        Get
            Return CDate(TimeValue(OUT)) - CDate(TimeValue([IN]))
        End Get
    End Property

    Public ReadOnly Property LATEIN As TimeSpan
        Get
            Return CDate(TimeValue([IN])) - CDate(TimeValue(DEFIN))
        End Get
    End Property
End Class

Desired output

        DATE            DAYS      STATUS    DEFIN   DEFREST IN      OUT     DUROFWORK       LATEIN
    06-May-24          Monday     PRESENT   08:00   01:00   08:00   17:00   08:00:00    
    07-May-24         Tuesday     PRESENT   08:00   01:00   08:00   17:00   08:00:00    
    08-May-24         Wednesday   PRESENT   08:00   01:00   08:00   17:00   08:00:00    
    09-May-24         Thursday    PRESENT   08:00   01:00   08:00   17:00   08:00:00    
    10-May-24         Friday      PRESENT   08:00   01:00   08:00   17:00   07:40:00    00:20:00
    11-May-24         Saturday  NOT PRESENT 08:00   01:00           
    12-May-24         Sunday    NOT PRESENT 08:00   01:00           


Upvotes: 0

Views: 59

Answers (0)

Related Questions