Skip to content

Instantly share code, notes, and snippets.

View sachintha81's full-sized avatar

Sach sachintha81

View GitHub Profile
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StackOverflow
{
class Program
{
@sachintha81
sachintha81 / IntelligentPath.cs
Created March 26, 2018 23:18
Intelligent Path.Combine()
public static class Pathy
{
public static string Combine(string path1, string path2)
{
if (path1 == null) return path2
else if (path2 == null) return path1
else return path1.Trim().TrimEnd(System.IO.Path.DirectorySeparatorChar)
+ System.IO.Path.DirectorySeparatorChar
+ path2.Trim().TrimStart(System.IO.Path.DirectorySeparatorChar);
}
@sachintha81
sachintha81 / GetWeightedRandomNumber.cs
Created October 13, 2017 18:29
Get a Weighted Random Number
public class Unit
{
public string Item { get; set; }
public int Weight { get; set; }
}
public class Program
{
public static Unit GetWeightedRandomNumber(List<Unit> list)
{
public static void CalculateAge(DateTime dt1, DateTime dt2, out int years, out int months, out int days)
{
DateTime start = dt1 < dt2 ? dt1 : dt2;
DateTime end = dt2 > dt1 ? dt2 : dt1;
years = 0;
months = 0;
days = 0;
while (start.AddYears(1) < end)
@sachintha81
sachintha81 / GetEnumDescription.cs
Created August 16, 2017 22:27
Get the description of any Enum
public static class EnumHelper<T>
{
public static string GetEnumDescription(string value)
{
Type type = typeof(T);
var name = Enum.GetNames(type).Where(f => f.Equals(value, StringComparison.CurrentCultureIgnoreCase)).Select(d => d).FirstOrDefault();
if (name == null)
{
return string.Empty;
@sachintha81
sachintha81 / EqualityComparer.cs
Created August 9, 2017 22:45
Equality Comparer for comparing objects based on members
using System;
using System.Collections.Generic;
using System.Linq;
// SO Link 1 : https://stackoverflow.com/a/263416/302248
// SO Link 2 : https://stackoverflow.com/q/45601078/302248
namespace ComparerGetHashCode
{
public class NumberClass
{
static string InsertThousandsSeparator(string input)
{
var dec = decimal.Parse(input);
var bits = decimal.GetBits(dec);
var prec = bits[3] >> 16 & 255;
return dec.ToString("N" + prec);
}
@sachintha81
sachintha81 / ProgressBarWindow.xaml.cs
Created June 22, 2017 22:03
WPF Hide Window Close Button (Red X Button)
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interop;
namespace KawasakiLogConverter
{
/// <summary>
/// Interaction logic for ProgressBarWindow.xaml
/// </summary>
@sachintha81
sachintha81 / MainWindow.xaml.cs
Last active March 6, 2023 20:31
WPF Progress Bar in a separate Window
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows;
namespace WPFProgressBar
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
@sachintha81
sachintha81 / StringIncrementExcelStyle.cs
Created June 21, 2017 16:33
Excel Style String Increment
// (1 = A, 2 = B...27 = AA...703 = AAA...)
public static string GetColNameFromIndex(int columnNumber)
{
int dividend = columnNumber;
string columnName = String.Empty;
int modulo;
while (dividend > 0)
{
modulo = (dividend - 1) % 26;